2.2.4.Дополнительный код
Дополнительный код двоичного числа (2’s complement) получают из обратного кода путем добавления 1 к его младшему значащему биту. Процесс преобразования для числа 1011012 = 4510 показан ниже:
1 |
0 |
1 |
1 |
0 |
1 |
двоичный эквивалент 45 |
0 |
1 |
0 |
0 |
1 |
0 |
каждый бит преобразуется в обратный код |
+ |
|
|
|
|
1 |
прибавляется 1 |
0 |
1 |
0 |
0 |
1 |
1 |
дополнительный код двоичного числа |
Таким образом, число 010011 будет дополнительным кодом числа 101101.
А вот еще один пример преобразования двоичного числа в дополнительный код:
1 |
0 |
1 |
1 |
0 |
1 |
двоичное число |
0 |
1 |
0 |
0 |
1 |
1 |
каждый бит преобразуется в обратный код |
+ |
|
|
|
|
1 |
прибавляется 1 |
0 |
1 |
0 |
1 |
0 |
0 |
дополнительный код двоичного числа |
2.2.5.Представление чисел со знаком в системе дополнительных кодов.
Дополнительный код применяется для представления чисел со знаком следующим образом.
Если число положительное, то его модуль представляется в естественной форме двоичного числа, а знаковый бит содержит 0, который ставится перед старшим знаковым битом.
Такой случай показан на рис.2.5 для числа 4510.
Если число отрицательное, то его модуль представляется при помощи дополнительного кода, а знаковый бит, содержащий 1, ставится перед старшим знаковым битом. Эта ситуация отражена на рис.2.5 для числа -4510.
-
0
10
1
1
0
1
= +4510
знаковый
бит "+"
Фактическое представление
-
1
0
1
0
0
1
1
= -4510
знаковый
бит "-"
Дополнительный код
двоичного числа
Рис.2.5. Представление чисел со знаком с помощью дополнительного кода
Дополнительный код используется для представления чисел со знаками, потому что этот код (о чем будет сказано далее) позволяет осуществлять операцию вычитания через сложение. Это очень удобно, поскольку компьютер может использовать одну и ту же схемотехнику как для сложения, так и для вычитания, тем самым экономя аппаратную часть.
2.2.6. Отрицание
Отрицанием называется логическая операция преобразования положительного числа в отрицательное или отрицательного числа в положительное. Если двоичные числа со знаком представляются в виде дополнительного кода, отрицание эквивалентно простому преобразованию в дополнительный код. Чтобы продемонстрировать это, преобразуем число +9. В двоичной форме вместе с битом знака это число будет выглядеть как 01001.
Если преобразовать его в дополнительный код, получим 10111. Ясно, что теперь это уже отрицательное число, так как знаковый бит, стоящий в первом разряде, равен 1. Действительно, число 10111 представляет собой -9, которое является отрицательным. Точно так же можно начинать и с числа -9, которое в двоичной форме будет выглядеть как 10111. Если преобразовать это число в дополнительный код, получим 01001, т.е. число +9. Порядок преобразований показан ниже.
-
двоичный код числа
0
1
0
0
1
= +9
преобразование в дополнительный код
1
0
1
1
1
= -9
снова осуществляем операцию отрицания
0
1
0
0
1
= +9
Таким образом, операция отрицания двоичного числа со знаком заключается в получении его дополнительного кода. Операция отрицания изменяет число на такое же число, но с противоположным знаком.
