Числа в двоичном коде не имеют знака. поэтому при необходимости использовать отрицательные числа (в т.ч. и при арифметических операциях), старший бит используется как признак знака числа, а множество представляемых чисел смещается.
Представление чисел 15 и -15 в 8-битном слове
15 | -15 | |
Прямой код | 00001111 | 10001111 |
Обратный код | 00001111 | 11110000 |
Дополненный код | 00001111 | 11110001 |
Значение двоичного 8-битного слова 10000000 в разных представлениях:
Беззнаковое | 128 |
Прямой код | -0 (отрицательный нуль) |
Обратный код | -127 |
Дополненный код | -128 |
При использовании прямого кода возникает особая цифра — отрицательный нуль, которая может представлять проблему при сравнении с «нормальным» нулем, не имеющим знака. Для калькуляторов возникновение отрицательного нуля как правило, не критично, поэтому в некоторых моделях он иногда может отображаться в качестве результата операций с отрицательными числами или вычитания.