Диапазоны значений целых чисел со знаком

 

Формат числа в байтах Диапазон
Запись с порядком Обычная запись
–27 ... 27–1 –128 ... 127
–215 ... 215–1 –32768 ... 32767
–231 ... 231–1 –2147483648 ... 2147483647

Самый левый (старший бит) разряд определяет знак числа.
Если он равен 0, число положительное, если 1, то отрицательное.

Например, в однобайтовом формате число 46=1011102 имеет вид:

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

Прямой код. Прямой код двоичного числа совпадает по изображению с записью самого числа. Значение знакового разряда для положительных чисел равно 0, а для отрицательных чисел 1.

Обратный код.Обратный код для положительного числа совпадает с прямым кодом. Для отрицательного числа все цифры числа заменяются на противоположные (1 на 0, 0 на 1), а в знаковый разряд заносится единица.

Дополнительный код.Дополнительный код положительного числа совпадает с прямым кодом. Для отрицательного числа дополнительный код образуется путем получения обратного кода и добавлением к младшему разряду единицы.

Например, в однобайтовом формате числа 27 и -27 имеют вид:

Число Прямой код Обратный код Дополнительный код
-27

 

Пример 1. Найти прямой, обратный и дополнительный код представления числа 13 в однобайтном формате.

1 шаг: Переведем число 13 из десятичной системы счисления в двоичную.

2 шаг: Для представления числа в компьютере выделен 1 байт. Старший бит занимает знак числа – 0. Сам код числа должен занимать 7 бит. Таким образом прямой код числа 13

Так как для положительных чисел прямой, обратный и дополнительный код совпадает, то ответ 00001101.

Пример 2. Найти прямой, обратный и дополнительный код представления числа -23 в однобайтовом формате.

1 шаг: Переведем число -23 из десятичной системы счисления в двоичную. Получим

-2310=-101112

 

2 шаг: Прямой код числа в однобайтовом формате, учитывая, что старший бит занимает знак числа -1, имеет вид

3 шаг: Найдем обратный код числа -23, заменив все цифры числа на противоположные (1 на 0, 0 на 1), а в знаковый разряд заносится единица. Имеем,

4 шаг: Найдем дополнительный код числа -23, добавив 1 к младшему разряду обратного кода.

Ответ: прямой код – 10010111; обратный – 11101000; дополнительный – 11101001.

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

Число Прямой код Обратный код Дополнительный код
-1
-5
-8
-120
-127

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

Распространёнными формами представления чисел со знаками является их представление в прямом, обратном и дополнительном коде.
Прямой код числа образуется кодированием знака числа нулём, если число положительно и единицей, если число отрицательно (для двоичной системы)
Для общего случая (q - 1) - если число отрицательно, и 0 - если число положительно. q - основание системы счисления.
Код знака записывается перед старшей цифрой числа и отделяется от неё точкой:
-1.01 = 1.101
Прямой, обратный и дополнительный коды положительных чисел совпадают между собой.
Обратный код отрицательного числа образуется из прямого кода, заменой его цифр на их дополнения до величины q-1. Код знака сохраняется без изменения.
Пример :
+12310 = 0.123пр = 0.123об.
-12310 = 9.123пр = 9.876об
+3А7С0016 = 0.3А7С00пр = 0.3А7С00об.
-3А7С0016 = F.3А7С00пр= F.C583FFоб.
-1012 = 1.101пр = 1.010об.
Замена цифр их дополнениями для двоичной системы совпадает с операцией инверсии, то есть нули заменяются единицами, единицы - нулями. Знак принимает значение, равное единице.
Дополнительный код отрицательного числа образуется из обратного увеличением на 1 его младшего разряда. При этом перенос из знакового разряда игнорируется.
Пример:
+23610 = 0.236пр.= 0.236об.= 0.236доп.
-23610 = 9.236пр.= 9.763об.= 9.764доп.
-1012= 1.101пр.= 1.010об= 1.011доп.
-3А7С16= F.3А7Спр= F.C583об.= F.C584доп.
Правила перевода из прямого кода в обратный и из обратного в прямой, а также из прямого в дополнительный и из дополнительного в прямой совпадают между собой.