При выполнении арифметических действий результат может получаться не только положительным, но и отрицательным. Как представить знак "-" в схемах машины, если в них фокусируется лишь два состояния - 0 или 1? Договорились знак числа определять самым левым, старшим битом. Если число положительное, то знаковый разряд равен 0, а если отрицательное - 1. Решение о выделении знакового разряда, конечно, сказалось на максимальных величинах представляемых чисел. Максимальное положительное число в 16 разрядах равно +32767, а отрицательное -32768.
Оказалось, что наиболее удобно оперировать двоичными числами в дополнительном коде. Единственное усложнение состоит в том, что необходимо для получения дополнительного кода прибавить единицу к инвертированному числу, т.е. к обратному коду этого числа. (Обратный код в двоичной системе получают путем изменения в числе нулей на единицы, единиц - на нули. Эта операция носит название инвертирование.)
Посмотрим на нижеприведенную таблицу.
| Десятичное число | Прямой код | Обратный код | Дополнительный код |
|---|---|---|---|
| -8 | - | - | 1000 |
| -7 | 1111 | 1000 | 1001 |
| -6 | 1110 | 1001 | 1010 |
| -5 | 1101 | 1010 | 1011 |
| -4 | 1100 | 1011 | 1100 |
| -3 | 1011 | 1100 | 1101 |
| -2 | 1010 | 1101 | 1110 |
| -1 | 1001 | 1110 | 1111 |
| 0 | 1000 | 1111 | 0000 |
| 0000 | 0000 | ||
| 1 | 0001 | 0001 | 0001 |
| 2 | 0010 | 0010 | 0010 |
| 3 | 0011 | 0011 | 0011 |
| 4 | 0100 | 0100 | 0100 |
| 5 | 0101 | 0101 | 0101 |
| 6 | 0110 | 0110 | 0110 |
| 7 | 0111 | 0111 | 0111 |
В этой таблице приведены десятичные числа, их двоичные представления в различных формах. Интересным в этой таблице является вот что. Если начать счет с числа 1000(-8) и двигаться вниз по столбцам, то в дополнительном коде каждое последующее число получается прибавлением единицы к предыдущему числу без учета переноса за пределы четвертого разряда. Так просто эту операцию в прямом и обратном кодах не осуществить. Эта особенность дополнительного кода и явилась причиной предпочтительного применения его в компьютерах.