Прямой код

Прямой код

Прямой код — способ представления двоичных чисел с фиксированной запятой в компьютерной арифметике. Главным образом используется для записи положительных чисел.

В англоязычной литературе именуется Sign and magnitude method.

Содержание

Представление числа в прямом коде

При записи числа в прямом коде старший разряд является знаковым разрядом. Если его значение равно 0 — то число положительное, если 1 — то отрицательное. В остальных разрядах (которые называются цифровыми разрядами) записывается двоичное представление модуля числа.

Функция кодирования двоичных чисел (в том числе целых чисел и смешанных дробей) в прямом коде имеет вид:

[A]_{\Pi \Rho} =
\begin{cases}
A,     & A \ge 0 \\
2^n + A, & A < 0
\end{cases}

где n — номер знакового разряда. В частности, при кодировании правильных двоичных дробей (то есть чисел -1 < A < 1), n = 0 и функция кодирования принимает вид:

[A]_{\Pi \Rho} =
\begin{cases}
A,     & A \ge 0 \\
1 + A, & A < 0
\end{cases}

Величина числа A в прямом коде определяется по следующей формуле:

A = (1 - 2 a_{sign})\sum_{i = -k}^{n} a_i p^i

где:

  • a_{sign} — значение знакового разряда;
  • число A имеет k разрядов справа от запятой (дробная часть) и n разрядов слева (целая часть), тут учитываются только цифровые разряды.

Как видно из последней формулы, знаковый разряд в прямом коде не имеет разрядного веса. При выполнении арифметических операций это приводит к необходимости отдельной обработки знакового разряда в прямом коде.

Примеры

десятичный   двоичный   8-разрядный прямой
----
   0                0        00000000        положительный ноль
  -0               -0        10000000        отрицательный ноль
   5              101        00000101
  10             1010        00001010
  -5             -101        10000101
 -16           -10000        10010000

   9/16        0.1001       0.1001000
  -9/16       -0.1001       1.1001000
 105/128    0.1101001       0.1101001
  -5/128   -0.0000101       1.0000101

Применение прямого кода

В информатике прямой код используется главным образом для записи неотрицательных целых чисел. Его легко получить из представления целого числа в любой другой системе счисления. Для этого достаточно перевести число в двоичную систему счисления, а затем заполнить нулями свободные слева разряды разрядной сетки машины.

Однако, у прямого кода есть два недостатка:

  • В прямом коде есть два варианта записи числа 0 (например, 00000000 и 10000000 в восьмиразрядном представлении).
  • Использование прямого кода для представления отрицательных чисел в памяти компьютера предполагает или выполнение арифметических операций центральным процессором в прямом коде, или перевод чисел в другое представление (например, в дополнительный код) перед выполнением операций и перевод результатов обратно в прямой код (что неэффективно).

Выполнение арифметических операций над числами в прямом коде затруднено: например, даже для сложения чисел с разными знаками требуется кроме сумматора иметь специальный блок-«вычитатель», сложность реализации которого такая же, как и обычного сумматора. Кроме того, при выполнении арифметических операций требуется особо обрабатывать знаковый разряд, так как он не имеет веса. Также требуется обработка «отрицательного нуля». Таким образом, выполнение арифметических операций над числами в прямом коде потребует сложной архитектуры центрального процессора и в общем является неэффективным.

Гораздо более удобным для выполнения арифметических операций является дополнительный код.

Диапазон

(n+1)-разрядный прямой код (n цифровых разрядов и один знаковый) позволяет представлять целые числа в диапазоне [-(2^n-1); 2^n-1]\,\!.

(n+1)-разрядный прямой код (n цифровых разрядов и один знаковый) позволяет представлять правильные двоичные дроби в диапазоне [-(1 - 2^{-n}); 1 - 2^{-n}]\,\!.

См. также

Литература

  • Behrooz Parhami 2.1. Signed-Magnitude Representation // Computer Arithmetic: Algorithms and Hardware Designs. — New York: Oxford University Press, 2000. — P. 19-21. — 510 p. — ISBN 0-19-512583-5
  • Самофалов К.Г., Романкевич А.М., Валуйский В.Н., Каневский Ю.С., Пиневич М.М. Прикладная теория цифровых автоматов. — К.: Вища школа, 1987. — 375 с.



Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Полезное


Смотреть что такое "Прямой код" в других словарях:

  • прямой код — tiesioginis kodas statusas T sritis automatika atitikmenys: angl. direct code vok. direkter Kode, m rus. прямой код, m pranc. code direct, m …   Automatikos terminų žodynas

  • Прямой код (представление числа) — Прямой код способ представления двоичных чисел с фиксированной запятой в компьютерной арифметике. Главным образом используется для записи положительных чисел. Содержание 1 Представление числа в прямом коде 1.1 Примеры …   Википедия

  • Прямой Кайтанак — Характеристика Длина 11 км Бассейн Катунь Водоток Устье Кайтанак  · Местоположение 8 км по правому берегу Расположен …   Википедия

  • Код (в ЦВМ) — Код в ЦВМ, условная система знаков для представления информации в ЦВМ. Каждый К. использует знаки своего алфавита. Для большинства К. алфавиты двухсимвольные либо состоят из букв двухсимвольного алфавита. Физическая форма К. зависит от характера… …   Большая советская энциклопедия

  • Код Рида — Соломона — Коды Рида Соломона недвоичные циклические коды, позволяющие исправлять ошибки в блоках данных. Элементами кодового вектора являются не биты, а группы битов (блоки). Очень распространены коды Рида Соломона, работающие с байтами (октетами). Код… …   Википедия

  • прямой двоичный (код) — — [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом EN straight binarySB …   Справочник технического переводчика

  • прямой двоичный код — — [Л.Г.Суменко. Англо русский словарь по информационным технологиям. М.: ГП ЦНИИС, 2003.] Тематики информационные технологии в целом EN straight binary code …   Справочник технического переводчика

  • код стандартной промышленной классификации — Четырехзначный цифровой код, установленный правительством США для обозначения различных отраслей промышленности в соответствии с их функциями и продукцией. Коды стандартной промышленной классификации используются осуществляющими прямой маркетинг… …   Справочник технического переводчика

  • Код — I (франц. code, от лат. codex свод законов)         система условных знаков (символов) для передачи, обработки и хранения (запоминания) различной информации. Конечная последовательность кодовых знаков называется словом. Число различных символов,… …   Большая советская энциклопедия

  • Прямой контакт — 3.2 Прямой контакт Контакт людей или животных с токоведущими частями [Международный электротехнический словарь (VEI) 826 03 05]. Примечание Данное определение из Международного электротехнического словаря приведено для сведения. В настоящем… …   Словарь-справочник терминов нормативно-технической документации


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»