В случае 8- и 16-ричных чисел результат формируется аналогично.

Для обратного кода: если перенос из старшего разряда равен 1, то результат положителен, представлен в прямом коде, но на 1 меньше истинного. В противном случае результат отрицателен и представлен в обратном коде.

Обратные преобразования производятся по тем же правилам.

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

Применительно к двоичным числам эта операция равносильна инвертированию, т.е. замене единиц нулями, а нулей - единицами.

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

Например, число (-5)10 в прямом двоичном коде имеет вид 1.101, в обратном - 1.010, а в дополнительном - 1.011; число (-62)8 в прямом коде имеет вид 1.628, в обратном - 1.158, а в дополнительном - 1.168; число (-А1)16 в прямом коде имеет вид 1.А1, в обратном - 1.5Е, а в дополнительном - 1.5F .

 

А теперь сформулируем алгоритмы формирования результатов при использовании обратного и дополнительного кодов.

Например, требуется вычислить разность 6-3, используя обратный код. Число 6 положительно, значит его обратный код равен прямому - 0.110.
6 Þ 0.110 Обратный код числа (-3) равен 1.100. Перенос из старшего разря-
-3 Þ 1.100 да равен 1, следовательно её надо арифметически добавить в
3 Þ10.010 младший разряд результата.
1 После этого получаем окончательный результат в прямом коде,
0.011 причём результат положителен.

 

3 Þ 0.011 Обратный пример: 3-6. Здесь перенос из старшего разряда равен

-6 Þ 1.001 0. Следовательно, результат отрицателен и представлен в обрат-

-3 Þ 1.100 ном коде.