Рейтинг:  0 / 5

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

Простейшим форматом хранения целых чисел без знака является однобайтовый формат. Один байт — это восемь битов, следовательно, если все двоичные разряды использовать для записи двоичного числа, диапазон возможных значений будет от 0000 00002 (010) до 1111 11112 (25510). В двухбайтовом формате диапазон больше — от 010 до 65 53510. Диапазон значений зависит от количества байтов, используемых для хранения целого числа: чем больше байтов, тем больше диапазон.

 

Для представления чисел со знаком используют три вида кода: прямой, обратный и дополнительный. В прямом коде старший разряд (то есть самый левый разряд двоичного представления) отводится для записи знака числа, а все прочие разряды содержат значение абсолютной величины числа. Для положительных чисел в старшем разряде записывается ноль, а для отрицательных — единица:

+ 1710=0001 00012

-1710=1001 00012

Представление положительных чисел совпадает в разных кодах, а представление отрицательных различается.

Количество разрядов, отведенное для записи абсолютной величины, на один меньше, чем в случае беззнакового формата. Следовательно, диапазон возможных значений абсолютной величины меньше: для однобайтового формата — от -128 до + 127, для двухбайтового — от -32 768 до +32 767, для четырехбайтового (тридцатидвухразрядного) формата — от -2 147 483 648 до +2 147 483 647.

Аппаратная реализация арифметических операций с числами в прямом коде может оказаться сложной. Обратный и дополнительный коды позволяют упростить арифметические операции, поэтому их используют для представления чисел со знаком. Все арифметические операции можно свести в этом случае к сложению. Представление отрицательных чисел различается в разных кодах. В прямом:

-1610=1001 00002

В обратном коде двоичные цифры абсолютной величины числа инвертируются, то есть единицы заменяются нулями, а нули — единицами:

-1610=1110 11112

Дополнительный код числа получают прибавлением единицы к обратному коду:

-1610=1111 00002

Обратный и дополнительный коды являются кодами внутреннего представления чисел. При вводе числа оно автоматически преобразуется во внутреннее представление. При выводе значения автоматически выполняется обратное преобразование.