Прямой,обратный и дополнительный коды

При вычислении ЭВМ оперируют как с положительными, так и с отрицательными числами. При этом вычитание можно заменить сложением, восполь-зовавшись дополнением отрицательного числа. Дополнением числа 12510 будет число *7510, числа 12516 будет число ЕDВ16, для числа 11012 - число 112. Эти дополнения получают следующим образом:

_1*0010 _100016 _10000*

125 10 125 16 1*01 *

87510 EDB16 112

Так как в ЭВМ имеются только устройства, выполняющие сложение, то вычитание заменяется сложением специальных кодов чисел. Для выполнения операций с двоичными числами в ЭВМ используются прямой, обратный, дополнительный, модифицированные обратный и дополнительный коды. Изображение положительных чисел во всех кодах одинаково, а отрицательных различно.

Прямой код совпадает с записью самого числа. В знаковом разряде записывается 0 (знак +) или 1 (знак - ), а затем записывается само число.

Например, числа: А1=+*,10*0 и А2= - *,10*0 в прямом коде записываются в виде: [А1]пр=0 1010 и [А2]пр=1 1*10.

Пример: В* = +0,1*1001 [В*]пр.= 0 *0*001;

В2 = - 0,*1101 [В2]пр.= 1 *1101.

Обратный код отрицательного числа получается следующим образом: в знаковом разряде записывается единица, а в цифровых разрядах нули заменяются единицами, а единицы - нулями.

Например, числа А1=+0,1010 и А2= - 0,101* в обратном коде записываются в виде [А1]обр.=0 101* и [А2]обр.=1 0101.

Пример: В1 = +0,101100 [В1]обр.= 0 101110;

В2 = - 0,010101 [В2]обр.= 1 1*1*1*.

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

Например: числа А1=+0,1010 и А2= - 0,101* в дополнительном коде записываются в виде: [А1]доп.=* 101* и [А*]доп.=1 0*10.

Пример: В1 = +0,00110 [В1]доп.= 0 0*110;

В2 = - 0,00*101 [В2]доп.= 1 110011.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow