Для образования обратного кода коэффициент С в выражении (3.3) выбирается равным максимальному числу, которое может быть записано в регистре с n целыми и m дробными разрядами:
С = 2n-2-m.
Двоичное число в обратном коде записывается в виде
[A]обр = bn.bn-1 … b1b0,b-1 … b-m,
при этом число А определяется как:
( 3.4 )
Пример 3.18. Найти значения двоичных чисел, записанных в обратном коде:
[A1]обр = 0.110,11, [A2]обр = 1.011,01 (n=3, m=2).
Решение. А1=0. (-2+3+2-2)+110,11=+110,11.
А2 = 1. (-2+3+2-2)+011,01=-1000+0,01+011,01=-100,10.
Как видим, положительные числа в прямом и обратном кодах имеют одинаковую форму записи.
Чтобы найти правило перехода от прямого кода отрицательного числа к обратному, приравняем правые части соотношений (3.2) и (3.4). Учитывая, что в соотношении (3.4 ) для отрицательных чисел bn=1, получим:
Так как то
Следовательно, bi=1-ai, т.е. если ai=0, то bi=1 и если ai=1, то bi=0.
Правило: Для получения обратного кода для отрицательного числа следует в разряд с отрицательным весовым коэффициентом записать 1, а в остальных разрядах прямого кода заменить 1 на 0, а 0 на 1. Аналогично образуется и прямой код отрицательного числа из обратного.
Пример 3.19. Получить обратный код для числа А = -10101,1011.
Решение. [A]пр = 1.10101,1011, [A]обр = 1.01010,0100.
Важно заметить, что в обратном коде отрицательного числа нули, записанные в конце числа после запятой и в начале числа, после 1, отделенные точкой, отбрасывать нельзя, но можно отбрасывать записанные на этих позициях 1.
Нуль в обратном коде имеет два представления:
+ 0 : [0]обр = 0.00 … 0, - 0 : [0]обр = 1.11 … 1.