Целые знаковые данные могут быть, во-первых. как ПОЛОЖИТЕЛНЫМИ, так и ОТРИЦАТЕЛЬНЫМИ, включая НОЛЬ, а во вторых, они по диапазону допустимых значений в два раза меньше беззнаковых (для положительных значений).
Это происходит потому, что не вся область отводится под информацию, как было с беззнаковыми данными. Старший бит всегда отводится под знак. Он называется бит S–Signum
S=0 – для положительных чисел;
S=1 – для отрицательных чисел
Информационное поле числа (0,1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Знак
| Биты
| Младший
|
Рис. 2.4. 16-ти разрядное представление целого числа со знаком
Отрицательные двоичные числа содержат единичный бит в старшем разряде и выражаются двоичным дополнением. Т.е., для представления отрицательного двоичного числа необходимо инвертировать все биты и прибавить 1.
Рассмотрим пример:
Число 10: 01010
Инверсия: 10101
Плюс 1: 1
10110 (равно -10)
Фактически двоичное число считается отрицательным, если его старший бит равен 1. Для определения абсолютного значения отрицательного двоичного числа, необходимо повторить предыдущие операции: инвертировать все биты и прибавить 1:
Двоичное значение: 10110 Сумма +10 и –10 должна составить ноль:
Инверсия: 01001 01010 (+10)
Плюс 1 110110 (-10)
01010 (равно +10) (1) 00000
Все восемь бит имеют нулевое значение. Перенос единичного бита влево потерян. Однако если был перенос в знаковый разряд из разрядной сетки, то результат является корректным.