Page 23 - ЭВМ
P. 23
Представление чисел в прямом коде не может быть использова-
но при выполнении операции сложения чисел, так как дает в ряде
случаев неправильный результат, например, для чисел с разными зна-
ками.
Правильный результат может быть достигнут при использова-
нии дополнительного или обратного кодирования чисел, при этом
обеспечивается автоматическое определение наличия или отсутствия
переполнения разрядной сетки:
1. Введем дополнительное кодирование числа x по следующему
правилу: если x ≥ 0, то дополнительный код числа x совпадает с пря-
мым кодом, если x < 0, то при сохранении знака (1) значимая часть
n
числа x = 2 – | x | (табл. 1.2).
Например:
5 (10) = 0101 (2) = 000101 (2), где 101 – значащая часть кода;
–5 (10) = 1011 (2) = 111011 (2), где 011 – значащая часть кода.
Заметим, что дополнительный код отрицательного числа x,
включая знак, также может быть получен по правилу x = 2 n+1 – | x |.
Таблица 1.2
Представление числа в прямом, дополнительном и обратном коде
x Прямой код Дополнительный код Обратный код
3 011 011 011
2 010 010 010
1 001 001 001
0 000 000 000
–0 100 000 111
–1 101 111 110
–2 110 110 101
–3 111 101 100
2. Введем обратное кодирование числа x по следующему правилу:
если x ≥ 0, то обратный код числа x совпадает с прямым кодом, если
n
x < 0, то при сохранении знака (1) значащая часть числа x = 2 –1 – | x |
(табл. 1.2).
Связь обратного и дополнительного кодов: x = x ’ + 1.
Необходимо отметить следующее:
1. Знаковую часть числа при дополнительном и обратном коди-
рованиях можно продолжить влево на любое число разрядов. Для
прямого кодирования это правило не действует.
2. Представление нуля при дополнительном кодировании одно-
значно, при прямом и обратном кодировании – нет.
23