Коды: прямой, обратный, дополнительный, модифицированный.

Одним из способов выполнения операции вычитания является замена знака вычитаемого на противоположный и прибавление его к уменьшаемому:

A – B = A + (–B).

Этим операцию арифметического вычитания заменяют операцией алгебраического сложения. Последняя и становится основной операцией.

Для машинного представления отрицательных чисел используют коды прямой, дополнительный, обратный.

Прямой код числа A = – 0, a1 a2 ... an – машинное изображение этого числа в виде [A]пр = 1, a1 a2 ... an.
Из определения следует, что в прямом коде все цифровые разряды остаются неизменными, а в знаковой части записывается единица. Например, если A = – 0,101110, то [A]пр = 1,101110.

Положительное число в прямом коде не меняет своего изображения. Например, если A = 0,110101, то [A]пр = 0,110101.

Дополнительный код числа A = – 0, a1 a2 ... an – машинное изображение этого числа [A]д = 1, а1, а2 ... аn, для которого аi = 0, если ai = 1, и аi = 1, если ai = 0, за исключением последнего значащего разряда, для которого аk = 1 при ak = 1.

Например, число A = – 0,101110 запишется в дополнительном коде так: [A]д = 1,010010.

Дополнительный код является математическим дополнением до основания системы счисления:

| A | + [A]д = q,

где | A | – абсолютное значение числа A.

Обратный код числа A = – 0, a1 a2 ... an – такое машинное изображение этого числа [A]об = 1, а1, а2 ... аn, для которого аi = 0, если ai = 1, и аi = 1, если ai = 0.

Из определения следует, что обратный код двоичного числа является инверсным изображением самого числа, в котором все разряды исходного числа принимают инверсное (обратное) значение, т. е. все нули заменяются на единицы, а все единицы – на нули, например если A = – 0,101110, то [A]об = 1,010001.

Следовательно, для обратного кода чисел, представленных в форме с запятой, фиксированной перед старшим разрядом, справедливо соотношение

| A | + [A]об = q – q^-n,

где | A | – абсолютная величина числа A; n – количество разрядов после запятой в изображении числа.