Для сложения двоичных чисел в обратном коде достаточно произвести сложение чисел, включая знаковые разряды по правилам двоичной арифметики, причем возникающий в знаковом разряде перенос должен быть добавлен к младшему разряду результата, осуществляя тем самым коррекцию предварительной суммы. Полученный код является алгебраической суммой слагаемых, представленных в обратном коде.
Пример 17. Сложить в обратном коде числа: A=0,0101 и B=0,0111.
Сначала переведем A и B в обратный код:
[A]i=0,0101, [B]i=0,0111.
Сложим полученные числа:
+0,0101
0,0111
[C]i=0,1100
Мы получили обратный код результата. Раскодировав его, получим C=0,1100.
Пример 18. Сложить в обратном коде числа: A=-0,0101 и B=0,0111.
Сначала переведем A и B в обратный код:
[A]i=1,1010, [B]i=0,0111.
Сложим полученные числа:
+1,1010
0,0111
10,0001
_____1
[C]i = 0,0010
Мы получили обратный код результата. Раскодировав его, получим C=0,0010.
Пример 19. Сложить в обратном коде числа: A=0,0101 и B=-0,0111.
Сначала переведем A и B в обратный код:
[A]i=0,0101, [B]i=1,1000.
Сложим полученные числа:
+0,0101
1,1000
[C]i = 1,1101
Раскодировав результат, получим C=–0,0010.
Пример 20. Сложить в обратном коде числа: A=-0,0101 и B=-0,1000.
Сначала переведем A и B в обратный код:
[A]i=1,1010, [B]i=1,0111.
Сложим полученные числа: +1,1010
1,0111
11,0001
_____1
1,0010
Раскодировав результат, получим C=–0,1101.
Ноль в обратном коде бывает «положительным» и «отрицательным», причем добавление к числу «отрицательного» нуля, впрочем, как и «положительного», дает в результате значение первого слагаемого.
Признаком переполнения в обратном коде можно считать знак результата, противоположный одинаковым знакам слагаемых.
Пример 21. Сложить в обратном коде числа: A=0,0111 и B=0,1101.
Сначала переведем A и B в обратный код:
[A]i=0,0111, [B]i=0, 1101.
Сложим полученные числа: +0,0111
0,1101
[C]i=1,0100
Раскодировав результат, получим C=-0,1011. Но результат сложения двух положительных чисел должен был быть положительным. Следовательно, получили переполнение разрядной сетки.
Пример 22. Сложить в обратном коде числа: A=-0,0110 и B=-0,1101.
Сначала переведем A и B в обратный код:
[A]i=1,1001, [B]i=1,0010.
Сложим полученные числа:
+1,1001
1,0010
10,1011
_____1
0,1100
Раскодировав результат, получим C=0,1100. Следовательно, получили переполнение разрядной сетки, так как при сложении двух отрицательных чисел получили положительный результат.
В итоге, использование обратного кода в операциях алгебраического сложения/вычитания позволяет:
― Использовать только действие арифметического сложения двоичных кодов;
― Получать истинное значение знака результата, выполняя над знаковыми разрядами операндов те же действия, что и над разрядами чисел;
― Обнаруживать переполнение разрядной сетки.
Недостаток использования прямого кода: коррекция предварительной суммы требует добавления единицы к ее младшему разряду и может вызвать распространение переноса по всему числу.
Для преодоления этого недостатка можно использовать вместо обратного кода дополнительный код.