Дополнительный код чисел
Чтобы отличать отрицательные числа от положительных, в любых позиционных системах счисления можно использовать либо знак [такое представление чисел называется их прямым кодом], либо величину числа [одно из таких представлений чисел называется их дополнительным кодом].
Использование чисел со знаком [прямого кода представления чисел] усложняет структуру ЭВМ, так как операция сложения двух чисел, имеющих разные знаки, должна быть заменена на операцию вычитания меньшей величины из большей и присвоение результату знака большей величины. Поэтому в большинстве ЭВМ отрицательные числа представляют в виде так называемых дополнений, что при суммировании двух чисел с разными знаками позволяет заменить вычитание на обычное сложение.
Дополнением M n-разрядного целого числа K называется разность M = qn-K, где q - основание системы счисления.
Так как количество различных целых n-разрядных чисел равно qn [от 0 до qn-1], то половину этих чисел [от 0 до qn/2-1] рассматривают как положительные, а другую половину [от qn/2 до qn-1] - как отрицательные [т.е. как дополнения к первой половине чисел]. Полный же набор таких чисел называют числами, представленными в дополнительном коде.
Дополнение числа можно получить и без вычитания. Перепишем формулу для вычисления дополнения M n-разрядного целого числа K следующим образом:
M=[[qn-1]-K]+1.
Здесь число [qn-1] состоит из n цифр [q-1], т.е. старших цифр используемой системы счисления. Например: [99 999]10, [FFFF]16 или [1111 1111 1111 1111]2. Поэтому [[qn-1]-K] можно получить путем образования дополнений до (q-1) для каждой из цифр числа K в отдельности, а искомое дополнение - суммированием этого числа с 1. Так как в двоичной системе дополнения цифр до 1 соответствует их инверсным значениям [дополнение 0 равно 1, а дополнение 1 равно 0], то можно дать простое правило для получения дополнения двоичных чисел.
Особенностью кода двоичных дополнительных чисел является то, что их старший бит выполняет функцию знака числа, т.е. равен 0 для положительных чисел и 1 - для их дополнений [отрицательных чисел]. Поэтому старший разряд обычно называют знаковым.