Выполнение арифметических действий с кодами
Пример 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) |
Таким образом, операции сложения и вычитания двоичных чисел заменяется операцией алгебраического сложения кодов. Поскольку представление в дополнительном или обратном кодах является беззнаковым, то операции сложения и вычитания для всех разрядов кодов выполняется по одному алгоритму.