Прямой и обратный коды двоичного числа 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Прямой и обратный коды двоичного числа



Прямой код

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

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

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

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

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

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

где:

· asign — значение знакового разряда;

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

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

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

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

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

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

Диапазон

     (n + 1)-разрядный прямой код (n цифровых разрядов и один знаковый) позволяет представлять целые числа в диапазоне

     (n + 1)-разрядный прямой код (n цифровых разрядов и один знаковый) позволяет представлять правильные двоичные дроби в диапазоне

Обратный код

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

     Обратный n-разрядный двоичный код положительного целого числа состоит из одноразрядного кода знака (двоичной цифры 0), за которым следует n − 1-разрядное двоичное представление модуля числа (обратный код положительного числа совпадает с прямым кодом).

     Пример. Двоичное представление числа 5 есть 101. Обратный 10-разрядный двоичный код числа +5 записывается как 0000000101.

     Обратный n-разрядный двоичный код отрицательного целого числа состоит из одноразрядного кода знака (двоичной цифры 1), за которым следует n − 1-разрядное двоичное число, представляющее собой инвертированное n − 1-разрядное представление модуля числа. Следует отметить, что для изменения знака числа достаточно проинвертировать все его разряды не обращая внимания знаковый ли это разряд или информационные.

     Пример. Двоичное представление числа 5 есть 101, его 10-разрядное двоичное представление — 0000000101. Обратный 10-разрядный двоичный код числа −5 есть 1111111010.

      Для преобразования отрицательного числа в положительное тоже применяется операция инвертирования. Этим обратные коды удобны в применении.[1] В качестве недостатка следует отметить, что в обратных двоичных кодах имеются два кода числа 0: «положительный нуль» 0000000000 и «отрицательный нуль» 1111111111 (приведены 10-разрядные обратные коды). Это приводит к некоторому усложнению операции суммирования. Поэтому в дальнейшем перешли к дополнительным кодам записи знаковых целых чисел.

 n-разрядный обратный код позволяет представить числа от − 2n − 1 + 1 до + 2n − 1 − 1.

 



Поделиться:


Последнее изменение этой страницы: 2021-12-15; просмотров: 97; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.153.38 (0.006 с.)