Форматы представления чисел с ПЗ
Вещественные числа в компьютерах различных типов записываются по-разному, тем не менее, все компьютеры поддерживают несколько международных стандартных форматов, различающихся по точности, но имеющих одинаковую структуру следующего вида:
Рекомендуемый для всех ВМ формат представления чисел с плавающей запятой определен стандартом IEEE 754. Этот стандарт был разработан с целью облегчить перенос программ с одного процессора на другие и нашел широкое применение практически во всех процессорах и арифметических сопроцессорах.
Рисунок -Основные форматы IEEE 754: а – одинарный; б – двойной
Стандарт определяет 32-битовый (одинарный) и 54-битовый (двойной) форматы (рис. 2.24) с 8- и 11-разрядным порядком соответственно. Основанием системы счисления является 2. В дополнение, стандарт предусматривает два расширенных формата, одинарный и двойной, фактический вид которых зависит от конкретной реализации. Расширенные форматы предусматривают дополнительные биты для порядка (увеличенный диапазон) и мантиссы (повышенная точность).
Не все кодовые комбинации в форматах IEEE интерпретируются обычным путем — некоторые комбинации используются для представления специальных значений. Предельные значения порядка, содержащие все нули (0) и все единицы (255 — в одинарном формате и 2047 — в двойном формате), определяют специальные значения.
Числа с плавающей запятой в разных ВМ имеют несколько различных форматов. В табл. 2.5 приводятся основные параметры для нескольких систем представления чисел в форме с ПЗ. В настоящее время для всех ВМ рекомендован стандарт, разработанный общепризнанным международным центром стандартизации IEEE (Institute of Electrical and Electronics Engineers).
Таблица - Варианты форматов чисел с плавающей запятой[1]
Параметр | IBM 390 | VAX | IEEE754 |
Длина слова (бит) | О:32; Д:64 | О:32; Д:64 | О:32; Д:64 |
Порядок (бит) | 7 бит | 8 бит | О:8; Д:11 |
Мантисса (F) | О:6 цифр; Д:14 цифр | О: (1)+23 бита Д: (1)+55 бит | О: (1)+23 бита Д: (1)+52 бита |
Смещение порядка | К:127; Д:1023 | ||
База | |||
Скрытая 1 | Нет | Да | Да |
Запятая | Слева от мантиссы | Слева от скрытой 1 | Справа старшего бита мантиссы |
Диапазон F | (1,16)<=F<1 | (0,5)<=F<1 | 1<=F<2 |
Представление F | Величина со знаком | Величина со знаком | Величина со знаком |
Максимальное положительное число | 1663@1076 | 2126@1038 | 21024@10308 (Д) |
Точность | О:16-6@10-7 Д:16-14@10-17 | О:2-24@10-7 Д:2-564@10--17 | О:2-23@10-7 Д:2-524@10--16 |
Представлены следующие классы чисел:
Порядок | Мантисса | Класс числа |
О: 1-254 Д: 1 - 2036 | Ненулевое нормализованное число. Порядки смещены так, что их диапазон составляет от -126 до +127 для одинарного формата и от -1022 до +1023 — для двойного формата. Нормализованное число требует, чтобы слева от двоичной запятой был единичный бит. Этот бит подразумевается, благодаря чему обеспечивается эффективная ширина мантиссы, равная 24 битам для одинарного и 53 битам — для двойного форматов. | |
<>0 | В этом случае бит слева от двоичной точки равен 0 и фактический порядок равен -126 или -1022. Число является положительным или отрицательным в зависимости от значения знакового бита. | |
Положительный и отрицательный ноль в зависимости от состояния знакового бита мантиссы | ||
Все единицы | Положительная и отрицательная бесконечность, в зависимости от состояния бита знака, что позволяет пользователю самому решить, считать ли это ошибкой или продолжать вычисления со значением, равным бесконечности. | |
Все единицы | <>0 | Используется как признак «не числа» (NAN — Not a Number) и служит для предупреждения о различных исключительных ситуациях. |
Общие замечания
Заканчивая рассмотрение порядка обработки чисел в компьютере, необходимо сделать ряд общих замечаний:
7) В компьютерах арифметические устройства выполняют действия не с самими двоичными числами по правилам двоичной арифметики, а с их двоичными кодами (представлениями) по правилам арифметики двоичных кодов.
8) Причиной отличий правил арифметики двоичных кодов от правил обычной арифметики является ограниченность разрядной сетки, применяемой для записи чисел в компьютере. При этом вещественные числа образуют конечное дискретное множество значений. Из этого вытекает ряд следствий:
- строгие отношения между вещественными числами превращаются в нестрогие для кодов вещественных чисел. Если ;
- так как код вещественного числа представляет приближенное значение числа, то и результат вычисления будет неточным, то есть содержать погрешность;
- из-за ограниченности разрядной сетки отличаются понятия «ноль» и «машинный ноль», «бесконечность» – «максимальное число».
9) Применение при вычислениях нормализованной формы представления чисел обеспечивает единообразие при их записи и обработке – нет необходимости распознавать тип числа, поскольку действия выполняются с мантиссами и порядками независимо.
10) Различие правил обработки целых и нормализованных чисел приводит к необходимости точного описания типов переменных перед их использованием в программах. Вторая причина описания типов состоит в оптимизации расходования памяти компьютера, поскольку числа разных типов требуют для хранения разных ресурсов памяти.
11) При вводе (записи) вещественного числа в компьютер производится его преобразование по следующей схеме: X10 ® X8 ® X2 ® M2×2p; при выводе число из двоичной нормализованной формы обратной последовательностью преобразований переводится в десятичное вещественное (в нормальной или естественной форме).