Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
инфа экзамен / крутые билеты по инфе / 19 представление чисел.docx
Скачиваний:
50
Добавлен:
23.03.2016
Размер:
118.6 Кб
Скачать
    1. Представление целых чисел в эвм

      1. Форматы представления целых чисел

Числа в ЭВМ хранятся в соответствии с форматом. Формат – это соглашение или правила представления числа в виде последовательности бит.

Минимальная единица хранения данных в ЭВМ – 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

      1. Прямой и дополнительный коды представления двоичных чисел

В прямом коде старший бит кодирует знак числа (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в памяти ЭВМ

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

Соседние файлы в папке крутые билеты по инфе