1.2.4. Числа со знаком

Легко использовать байты, слова или двойные слова для представления целых

положительных чисел - от 0 до 255,65 535 или 4 294 967 295 соответственно. Чтобы применять те же самые байты или слова для представления отрицательных чисел, существует специальная операция, известная как дополнение до двух. Для измене­ния знака числа выполняют инверсию, то есть заменяют в представлении числа все единицы нулями и нули единицами, а затем прибавляют Например, пусть используются переменные типа

1Б0 = 0096Ї1 = 0000 0000 1001 0110Ь инверсия дает: 1111 1111 0110 1001b + 1   =   1111   1111   0110  1010b = 0FF6Ah

Проверим, что число на самом деле -150: сумма + 150 должна быть равна нулю:

+15Q +   (-15Q)   = QQ96h + 0FF6Ah = lQQQQh

Единица в 16-м разряде не помещается в слово, следовательно, мы действи­тельно получили 0. В данном формате старший (7-й, 15-й, 31-й для байта, слова, двойного слова) бит всегда знаку числа: 0 - для положительных

и 1 - для отрицательных. Таким образом, схема с использованием дополнения до двух выделяет для положительных и отрицательных чисел равные диапазоны:

-128...+127 - для байта, -32 763...+32 767 - для слов, -2 147 483 64S...+2 147 483 647 -для двойных слов.