Для представления отрицательных целых чисел используется дополнительный код числа.
Получить дополнительный код можно по следующему алгоритму:
1) записать внутреннее представление положительного числа Х;
2) записать обратный код, т.е. заменить 1 на 0 и 0 на 1.
3) к полученному числу прибавить 1.
Рассмотрим применение данного алгоритма на примере десятичного числа -25.
1) Запишем внутреннее представление числа 25 в 8-разрядной ячейке: 00011001
2) Запишем обратный код: 11100110
3) Прибавим к получившемуся числу 1: 11100111 - это и есть -25.
В результате выполнения данного алгоритма 1 в старшем разряде получается автоматически. Она и является признаком отрицательного значения.
Для проверки Вы можете сложить числа +25 и -25. В результате должен получиться 0.
Определим диапазон чисел, которые могут хранится в оперативной памяти в формате целых отрицательных чисел.
Минимальное число - 00000000
В десятичной системе оно соответствует 0
Максимальное число - 10000000
В десятичной системе оно соответствует -120
Таким образом, диапазон целых отрицательных чисел, помещающихся в 8-разрядную ячейку [-128; 0].
Очевидно, что восьмиразрядное представление целых чисел обеспечивает слишком узкий диапазон значений
[-128; 127].
Если требуется больший диапазон, необходимо использовать ячейки большего размера.
Для 16-разрядной ячейки (2 байта) диапазон значений - [-32 768; 32 767].
Для 32-разрядной ячейки (4 байта) диапазон значений - [-2 147 483 648; 2 147 483 647].