Выполнение арифметических действий с кодами

Пример 1.14.

Обратный код числа.

Пример 1.13.

Дополнительный код.

Пример 1.12.

Прямой код.

Машинные коды.

 

Двоичные числа в ЭВМ представляются машинными кодами определённой разрядности. Предположим, что число разрядов слова равно m тогда двоичный код числа X в этой разрядности запишется следующим образом:

X=Xm-1Xm-2Xm-3…X1X0, (1.15)

Здесь Xm-1 – знаковый разряд числа

.

 

 

Прямой код числа X определяется следующим образом:

, (1.16)

Из (1.16) следует, что ноль имеет два представления:

.

 

Представить в прямом коде двоичные числа (+1000010)2 и (-1000010)2:

а) [+1000010]пр=0 1000010, б) [-1000010]пр=1 1000010.

Прямые коды чисел не используются при выполнении операций над числами. Это связано с тем, что обработка цифровых и знакового разрядов чисел осуществляется по различным алгоритмам. Выполнение операций сложения и вычитания требуются двух разных устройств: сумматора и вычитателя. В силу сказанного для выполнения арифметических операций сложения и вычитания используется дополнительный или обратный код числа.

 

 

Дополнительный код числа X определяется следующим образом:

, (1.18)

Представить в дополнительных кодах двоичные числа (+1000010)2 и (-1000010)2:

а) [+1000010]доп=0 1000010, б) [-1000010]доп=28-1000010=10 0000000-1000010=1 0111110.

Таким образом, дополнительный код положительного числа совпадает с прямым кодом. Дополнительный код отрицательного числа образуется по следующему правилу: все младшие разряды числа до первой единицы включительно сохраняют своё значение, остальные инвертируются, а в знаковом разряде записывается единица.

Ноль в дополнительном коде имеет единственное представление:

[+0]доп=[-0]доп=[0]доп= .

Как следует из (1.18) дополнительный код осуществляет

 

Рис. 1.1

отображение отрицательных чисел на область положительных чисел (рис. 1.1)

 

 

Обратный код числа X определяется следующим образом:

, (1.19)

Представить в обратном коде двоичные числа и .

а) [+1000010]обр=0 1000010.

б) [-1000010]обр=28-1000010-1=10 0000000-1000010-1=1 0111101.

 

Таким образом, обратный код положительного числа совпадает с прямым кодом, а обратный код отрицательного числа образуется по следующему правилу: все цифровые разряды числа инвертируются, а в знаковом разряде записывается единица.

Ноль в обратном коде имеет два представления:

, .

Как следует из (1.19) обратный код, также как и дополнительный,

 

осуществляет отображение отрицательных чисел на область положительных чисел (Рис. 1.2.).

Рис. 1.2

На основании (1.19) можно установить связь между обратным и дополнительным кодом,

[X]обр=[X]доп-1, X£0, (1.20)

откуда можно получить другое правило образования дополнительного кода,

[X]доп=[X]обр+1. (1.21)

Это правило используется в ЭВМ при переходе к дополнительному коду числа.

Обратный и дополнительный код чисел обладают свойством линейности относительно операций сложения и вычитания

[X+Y]=[X]+[Y], [X-Y]=[X]+[-Y]. (1.22)

Таким образом, операции сложения и вычитания двоичных чисел заменяется операцией алгебраического сложения кодов. Поскольку представление в дополнительном или обратном кодах является беззнаковым, то операции сложения и вычитания для всех разрядов кодов выполняется по одному алгоритму.