Знаковый бит

Знаковый бит

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

Содержание

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

При записи числа в прямом коде старший разряд является знаковым разрядом. Если его значение равно 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,     &amp;amp; A \ge 0 \\
1 + A, &amp;amp; A &amp;lt; 0
\end{cases}

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

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

где:

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

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

Примеры

десятичный   двоичный   8-разрядный прямой
--------------------------------------------
   0                0        00000000        положительный ноль
   0                0        10000000        отрицательный ноль
   4              100        00000100
  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}]\,\!.

См. также



Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Полезное


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

  • знаковый бит — Бит, который показывает знак числа: положительное число (нуль) или отрицательное число (единица) (МСЭ Т T.800). [http://www.iks media.ru/glossary/index.html?glossid=2400324] Тематики электросвязь, основные понятия EN sign bit …   Справочник технического переводчика

  • A-закон — А закон  алгоритм сжатия с потерей информации, применяется для сжатия звуковых данных. Реализации для 16 битных знаковых целых Принцип кодирования схож с кодированием чисел с плавающей запятой. Каждый семпл кодируется в 8 битное поле.… …   Википедия

  • А-закон — А закон  алгоритм сжатия с потерей информации, применяется для сжатия звуковых данных. Содержание 1 Описание реализации алгоритма для 16 битных знаковых целых 1.1 Шаг 1 1.2 Шаг 2 …   Википедия

  • Битовое поле — Битовое поле  в программировании число, занимающее некоторый набор битов, напрямую не адресуемый процессором. Например: при 8 битном байте первые два поля протокола IP  версия и IHL  будут битовыми полями. На машинах с 32 битным… …   Википедия

  • Битовые поля — Битовое поле  в программировании число, занимающее некоторый набор битов, напрямую не адресуемый процессором. Например: при 8 битном байте первые два поля протокола Обращение к битовым полям требует дополнительных команд процессора для… …   Википедия

  • Запятая плавающая — Плавающая запятая форма представления дробных чисел, в которой число хранится в форме мантиссы и показателя степени. При этом число с плавающей запятой имеет фиксированную относительную точность и изменяющуюся абсолютную. Наиболее часто… …   Википедия

  • Машинный эпсилон — Плавающая запятая форма представления дробных чисел, в которой число хранится в форме мантиссы и показателя степени. При этом число с плавающей запятой имеет фиксированную относительную точность и изменяющуюся абсолютную. Наиболее часто… …   Википедия

  • Плавающая запятая — форма представления дробных чисел, в которой число хранится в форме мантиссы и показателя степени. При этом число с плавающей запятой имеет фиксированную относительную точность и изменяющуюся абсолютную. Наиболее часто используемое представление… …   Википедия

  • Плавающая точка — Плавающая запятая форма представления дробных чисел, в которой число хранится в форме мантиссы и показателя степени. При этом число с плавающей запятой имеет фиксированную относительную точность и изменяющуюся абсолютную. Наиболее часто… …   Википедия

  • Числа с плавающей точкой — Плавающая запятая форма представления дробных чисел, в которой число хранится в форме мантиссы и показателя степени. При этом число с плавающей запятой имеет фиксированную относительную точность и изменяющуюся абсолютную. Наиболее часто… …   Википедия


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

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