Для представления положительных и отрицательных чисел в памяти вычислительных устройств используются различные формы представления. Эти формы предназначены для упрощения проведения арифметических операций над числами.
Так называемый прямой код используется для представления положительных чисел. Например, для представления числа 6 используется прямой код 00000110.
Дополнительным кодом называют ситуацию, когда для задания отрицательного числа само число не изменяется, а к нему добавляется единица в старшем разряде. Например, число -6 будет представлено как 10000110.
Однако дополнительный код имеет недостаток, заключающийся в том, что для его преобразования необходимо использование больших аппаратных ресурсов. Для выполнения операции "модуль" необходимо выполнить операцию выделения старшего разряда, его обнуления, и добавления к нему оставшихся семи бит.
Чтобы выполнять такое преобразование в минимальное число операций, был предложен обратный код.
Обратный код также используется для представления отрицательных чисел. При этом старший разряд получает значение 1, а остальные 7 бит инвертируются, то есть единицы заменяются нулями и наоборот. Например, число -6 будет представлено как 11111001. Обратные коды позволяют выполнять операцию "модуль" простым инвертированием байта числа. В противном случае, вместо одной команды приходится выделять из байта бит знака, и отдельно инвертировать его.
Особенностью дополнительных и обратных кодов является то, что при положительных числах они не отличаются от прямого кода.