Кодирование целых чисел со знаком

Теоретически, для знака записи числа можно было бы выделить один бит, на­пример самый старший. Тогда оставшиеся 7 бит позволили бы выразить целые числа от -127 до +127, включая 0. Однако при таком подходе возникают две проблемы:

· информационным содержанием байта становятся 255 различимых чисел вместо 256 (то есть одно значение куда-то пропадает);

· мы получаем два различимых нуля: «плюс ноль» и «минус ноль» (вот куда пропало недостающее значение). Эти обстоятельства «сбивают» работу вычислительных систем и не позволяют использовать простое двоичное представ­ление для записи целых чисел со знаком. Для таких чисел придумана специальная форма записи, которая называется двоич­ной дополнительной арифметикой.Запись числа в этой форме осуществляется в три приёма.

1. Сначала записывается целое число без знака (как будто оно положительное).

2. Если число отрицательное, то оно ин­вертируется (каждый бит числа меняется на противоположный).

3. Затем инверсное число дополняется (значение младшего бита увеличивается на единицу).

 

Интересно отметить, что старший бит байта указывает на знак числа. Если он равен нулю, то число положительное, а если он равен 1, то отрицательное.