Представление целых чисел в эвм
Форматы представления целых чисел
Числа в ЭВМ хранятся в соответствии с форматом. Формат – это соглашение или правила представления числа в виде последовательности бит.
Минимальная единица хранения данных в ЭВМ – 1 байт. Существуют следующие форматы представления целых чисел: байт (полуслово), слово (включает 2 байта), двойное слово (4 байта), расширенное слово (8 байт). Биты, из которых состоят эти форматы, называются разрядами. Таким образом, в байте 8 разрядов, в слове – 16 разрядов, а в двойном слове – 32 разряда. Слева находятся старшие разряды, а справа – младшие. Каждый из этих форматов может быть знаковым (Рис. 5 .1) для представления положительных и отрицательных чисел или беззнаковым (Рис. 5 .2) для представления положительных чисел.

Рис. 5.1. Знаковые форматы представления целых чисел
Знаковым является самый старший разряд. На Рис. 5 .1 знаковый разряд обозначен символом S. Если он равен 0, то число считается положительным, а если разряд равен 1, то число считается отрицательным.

Рис. 5.2. Беззнаковые форматы представления целых чисел
В общем виде диапазон значений, представляемых знаковыми форматами представления целых чисел (табл. 5 .1) определяется по формуле
–2n–1£ X £2n–1– 1,
а для беззнакового формата определяется по формуле
0 £ X £2n– 1,
где n– число разрядов в формате.
Таблица 5.1. Форматы представления целых чисел в ЭВМ
|
Формат |
Число разрядов |
Диапазон (границы) | |
|
Знаковый |
Беззнаковый | ||
|
Байт |
8 |
–128; 127 |
0; 255 |
|
Слово |
16 |
–32 768; 32767 |
0; 65 535 |
|
Двойное слово |
32 |
–2 147 483 648; 2 147 483 647 |
0; 4 294 967 295 |
Прямой и дополнительный коды представления двоичных чисел
В прямом коде старший бит кодирует знак числа (0 – для положительного, 1 – для отрицательного), а остальные биты – модуль числа.
Пример 5.1. Число 11 в прямом коде будет представляться как 0|1011п, а число –11 – как 1|1011п. □
В дополнительном коде положительное число кодируется также как и в прямом. Для представления отрицательного числа в дополнительном коде, существуют два способа. При представлении чисел в дополнительном коде используется операция инвертирования – замена бита на противоположный, то есть 0 на 1, а 1 на 0.
Правило 5.1. (поразрядное представление отрицательного числа в дополнительном коде) Представить модуль отрицательного числа в прямом коде и проинвертировать все разряды левее самой младшей (правой) единицы.
Пример 5.2. Представить число –11 в дополнительном коде с помощью поразрядного представления.
Решение. Переведем модуль этого числа в двоичную систему: 11 = 10112и представим его в прямом коде: 0|1011п. Самая младшая единица – последняя, поэтому ее оставляем без изменения, а остальные разряды слева инвертируем (Рис. 5 .3).
В результате получаем 1|0101д– представление числа –11 в дополнительном коде. □

Рис. 5.3. Представление числа –11 в дополнительном коде
Правило 5.2. (арифметическое представление отрицательного числа в дополнительном коде) Прибавить к отрицательному числу 2m, гдеm– количество разрядов в двоичном представлении или данном формате, и полученное число перевести в двоичную систему счисления. Для байта 28 = 256, для слова 216= 65 536, для двойного слова 232= 4 294 967 296.
Из этих правил можно сделать вывод, что положительные числа в случае увеличения числа разрядов дополняются слева нулями, а отрицательные – единицами.
Пример 5.3. Представить число –11 в дополнительном коде путем арифметического представления.
Решение. Пусть необходимо получить m = 5 разрядов дополнительного кода. Вычислим слагаемое 2m = 25 = 32. Произведем сложение и перевод в двоичную систему счисления:
–11 + 32 = 21 = 101012.
Полученный результат соответствует представлению числа –11 в дополнительном коде.
Для m = 8, 28 = 256:
–11 + 256 = 245 = 111101012.
Представление числа –11 было дополнено единицами слева до 8 разрядов. □
Возможно и обратное преобразование отрицательных чисел, записанных в дополнительном коде.
Правило 5.3. (поразрядное определение значения отрицательного числа, записанного в дополнительном коде) Алгоритм определения значения отрицательного числа в дополнительном коде состоит из следующих шагов.
1. Проинвертировать все разряды левее самой младшей (правой) единицы.
2. Перевести число из двоичной системы счисления в десятичную систему по правилу Error: Reference source not found.
3. Умножить результат на –1.
Пример 5.4. Определить, какое десятичное число закодировано числом 1|0101дс помощью поразрядного определения.
Решение. Проинвертируем разряды числа:
1010|1д®0101|1п.
Переведем число из двоичной системы счисления в десятичную систему счисления:
010112= 11.
Умножим результат на –1 и получим число –11. □
Правило 5.4. (арифметическое определение отрицательного числа, записанного в дополнительном коде) Перевести двоичное число в десятичную систему счисления и вычесть из полученного числа число 2m, гдеm– количество разрядов в двоичном представлении.
Пример 5.5. Определить, какое десятичное число закодировано числом 1|0101дс помощью арифметического определения.
Решение. Переведем число из двоичной системы счисления в десятичную систему счисления:
101012= 21.
Вычтем из полученного результата перевода число 2m = 25 = 32, так как двоичное число состоит из 5 разрядов:
21 – 32 = –11.
В результате получим десятичное число –11. □
Числа в знаковых форматах записываются в дополнительном коде, а в беззнаковых – в прямом.
Запись в дополнительном коде необходима, чтобы складывать и вычитать положительные и отрицательные числа без преобразований.
Пример 5.6. Сложить 21 и –11 в двоичной системе счисления.
Решение. Переведем слагаемые в дополнительный код:
21 = 0|10101д; –11 = 1|10101д.
Будем использовать правила двоичной арифметики:
0 + 0 = 0;
1 + 0 = 0 +1 = 1;
1 + 1 = 10 (с переносом единицы в следующий разряд).
Сложим два двоичных числа столбиком с учетом того, что перенос единицы из знакового разряда игнорируется:
0101012
1101012
0010102= 10.
В результате получено число 10 – сумма 21 и –11 без дополнительных преобразований. □
Форматы целых чисел слово и двойное слово хранятся в памяти ЭВМ в обратном порядке, то есть сначала младший байт, а затем старший. Например, слово B5DE16будет располагаться в памяти, как показано на Рис. 5 .4.

Рис. 5.4. Расположение слова B5DE16в памяти ЭВМ
Такое расположение байт удобно при операциях с числами, так как вычисления начинаются с младших разрядов, поэтому они и располагаются сначала.
