Представление данных с плавающей точкой - часть 6
количества бит порядка не увеличивает точность числа. Размер
мантиссы есть единственное ограничение точности данного числа в
пределах системы.
Значение порядка хранится не как число, представленное в
дополнительном коде. Для упрощения вычислений значение порядка в
ЭВМ хранится в виде смещенного числа. Это означает, что к
действительному значению порядка прибавляется смещение перед
записью его в память. Смещенным значение порядка делается для
того, чтобы можно было сравнивать значения порядка с помощью
обычной операции сравнения чисел с фиксированной точкой без знака.
В частности, это полезно при сравнении двух чисел с плавающей
точкой. Значения порядка и мантиссы записываются в одном элементе
данных, причем порядок записывается перед мантиссой. В случае
смещенного значения порыдка программа может сравнивать числа
побитно, начиная со старших позиций. Первое же неравенство
показывает соотношение чисел, и больше не нужно учитывать никакие
части чисел. Значение смещения определяется размером поля порядка.
Давайте это рассмотрим на примере форматов данных сопроцессора
8087.
В сопроцессоре 8087 формат короткого действительного числа
использует 32 бита, восемь из которых содержат значение порядка;
таким образом, оно может находиться в пределах от - 128 до 127.
Однако значение -128 зарезервировано для обозначения некоторого
специального, а именно, неопределенного числа, так что значения
порядка находятся в диапазоне от -127 до 127. Значение порядка -
это не число, представленное в дополнительном коде. Сопроцессор
8087 прибавляет значение смещения 127 к значению порядка
действительного числа перед тем, как его запомнить.
Значение порядка Хранимое значение
---------------------------------------
-127 000H
-1 07EH
0 07FH
1 080H
127 0FEH
------------------------------------- Фиг. 7.5 Хранение порядка
В таблице на Фиг. 7.5 показаны некоторые возможные значения
порядка и его запоминаемое значение. Как видно из рисунка,
смещение меняет содержимое поля порядка так, чтобы наименьшему
значению порядка соответствовало наименьшее действительное число;
аналогично, наибольшему значению порядка соответствовало наибольшее
число. Если два числа с плавающей точкой различаются значением
порядка, простое сравнение полей порядка упорядочивает оюа числа.
Поскольку такое сравнение можно продолжать и дальше с полями
мантисс, программа может легко сравнить два числа с плавающей
точкой. И вся эта простота - только благодаря смещению порядка.
Содержание Назад Вперед