Обратный код

Для образования обратного кода коэффициент С в выражении (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.