- •8. Типы и форматы операндов
- •Числовая информация
- •Числа в форме с фиксированной запятой
- •Упакованные целые числа
- •Десятичные числа
- •Числа в форме с плавающей запятой
- •Стандарт ieee 754
- •Упакованные числа с плавающей запятой
- •Разрядность основных форматов числовых данных
- •Размещение числовых данных в памяти
- •Символьная информация
- •Логические данные
- •Прочие виды информации
- •Видеоинформация
- •Аудиоинформация
Стандарт ieee 754
Рекомендуемый для всех ВМ формат представления чисел с плавающей запятой определен стандартом IEEE 754. Этот стандарт был разработан с целью облегчить перенос программ с одного процессора на другие и нашел широкое применение практически во всех процессорах и арифметических сопроцессорах.

Рис. 8.12. Основные форматы IEEE 754: а — одинарный; б — двойной
Стандарт определяет 32-битовый (одинарный) и 64-битовый (двойной) форматы (рис. 8.12) с 8- и 11-разрядным порядком соответственно. Основанием системы счисления является 2. В дополнение, стандарт предусматривает два расширенных формата, одинарный и двойной, фактический вид которых зависит от конкретной реализации. Расширенные форматы предусматривают дополнительные биты для порядка (увеличенный диапазон) и мантиссы (повышенная точность). Таблица 8.2 содержит описание основных характеристик всех четырех форматов.
Не все кодовые комбинации в форматах IEEE интерпретируются обычным путем — некоторые комбинации используются для представления специальных значений. Предельные значения порядка, содержащие все нули (0) и все единицы (255 — в одинарном формате и 2047 — в двойном формате), определяют специальные значения.
Таблица 8.2. Параметры форматов стандарта IEEE 754
|
Параметр |
Формат | |||
|
одинарный |
одинарный расширенный |
двойной |
двойной расширенный | |
|
Ширина слова, бит |
32 |
>=43 |
64 |
>=79 |
|
Ширина порядка, бит |
8 |
>=11 |
11 |
>=15 |
|
Смещение порядка |
127 |
Не определено |
1023 |
Не определено |
|
Максимальный порядок |
127 |
>= 1023 |
1023 |
>= 16 383 |
|
Минимальный порядок |
-126 |
<=-1022 |
-1022 |
<=-16382 |
|
Диапазон чисел |
10-38, 10+38 |
Не определен |
10-308, 10+308 |
Не определен |
|
Длина мантиссы, бит |
23 |
>=31 |
52 |
>=63 |
|
Количество порядков |
254 |
Не определено |
2046 |
Не определено |
|
Количество мантисс |
223 |
Не определено |
252 |
Не определено |
|
Количество значений |
1,98 х 231 |
Не определено |
1,99 х 263 |
Не определено |
Представлены следующие классы чисел:
Порядки в диапазоне от 1 до 254 для одинарного формата и от 1 до 2036 — для двойного формата, используются для представления ненулевых нормализованных чисел. Порядки смещены так, что их диапазон составляет от -126 до +127 для одинарного формата и от -1022 до +1023 — для двойного формата. Нормализованное число требует, чтобы слева от двоичной запятой был единичный бит. Этот бит подразумевается, благодаря чему обеспечивается эффективная ширина мантиссы, равная 24 битам для одинарного и 53 битам — для двойного форматов.
Нулевой порядок совместно с нулевой мантиссой представляют положительный или отрицательный 0, в зависимости от состояния бита знака мантиссы.
Порядок, содержащий единицы во всех разрядах, совокупно с нулевой мантиссой представляют положительную или отрицательную бесконечность, в зависимости от состояния бита знака, что позволяет пользователю самому решить, считать ли это ошибкой или продолжать вычисления со значением, равным бесконечности.
Нулевой порядок в сочетании с ненулевой мантиссой представляют ненормализованное число. В этом случае бит слева от двоичной точки равен 0 и фактический порядок равен -126 или -1022. Число является положительным или отрицательным в зависимости от значения знакового бита.
Кодовая комбинация, в которой порядок содержит все единицы, а мантисса не равна 0, используется как признак «не числа» (NAN — Not a Number) и служит для предупреждения о различных исключительных ситуациях.
