При вычислении ЭВМ оперируют как с положительными, так и с отрицательными числами. При этом вычитание можно заменить сложением, восполь-зовавшись дополнением отрицательного числа. Дополнением числа 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.