
146
Чтобы получить дополнительный код отрицательного числа, необходи-
мо сначала сформировать дополнение этого числа до 1 (проинвертировать)
и затем прибавить 1.
Приведем пример получения дополнительного кода отрицательного
числа -5.
1.
Десятичное число 5 преобразуется к его двоичному эквиваленту – 0101.
2.
Находится дополнение полученного двоичного числа до 1 путем за-
мены всех единиц на нули и всех нулей на единицы. В результате 0101 пре-
вращается в 1010.
3.
К полученному дополнению до 1 прибавляется 1 путем обычного
двоичного сложения. В данном примере 1010+1=1011. Результат 1011 и
есть дополнительный код числа -5.
Чтобы перейти от дополнительного кода к двоичному числу, по кото-
рому можно восстановить исходное десятичное число, необходимо обрат-
ное преобразование выполнить следующим образом.
1.
Образуется дополнение до 1 для исходного дополнительного кода
путем замены всех нулей на единицы и всех единиц на нули. В нашем
примере 1011 преобразуется в 0100.
2.
К полученному результату прибавляется 1 путем обычного двоич-
ного сложения. В нашем примере: 0100+1=0101. Поскольку в самом стар-
шем разряде дополнительного кода числа стоит 1, то соответствующее де-
сятичное число 5 следует воспринимать как отрицательное.
Следует отметить, что в случае переполнения разрядной сетки при
сложении двоичных чисел в дополнительном коде старший разряд отбра-
сывается. Например, складывая числа в дополнительном коде 1111 (деся-
тичное число –1) и 1110 (десятичное число -2), получим число 11101. Са-
мый старший разряд полученной 5-разрядной комбинации отбрасывается.
В результате остается дополнительный код суммы 1101 (десятичное число
-3).
Представление чисел в дополнительном коде удобно использовать и
при вычитании чисел со знаком. Пример: (+7)-(+3) =+4. Вычитаемое (в
данном случае 3) представляется в дополнительном коде как отрицатель-
ное число 1101. Затем 0111 (десятичное число +7) прибавляется к 1101 и
получаем 10100. Самый старший разряд этой 5-разрядной комбинации от-
брасывается. В результате остается дополнительный код разности (0100),
т.е. код десятичного числа +4.
Несколько примеров на сложение и вычитание чисел в дополнитель-
ном коде:
(+4) 0 1 0 0
+ (+3) + 0 0 1 1
+7 0 1 1 1 Дополнительный код суммы