достижении другого предела представления чисел
0 1 0 1 + Бесконечность 1 1 0 1 Пусто
0 1 1 0 - Нормально 1 1 1 0 - Ненормальное
0 1 1 1 - Бесконечность 1 1 1 1 Пусто
---------------------------------------------------------------------------------------------------
Фиг. 7.21 Пример интерпретации кодов состояний
Денормализованные и ненормализованные числа возникают при
достижении другого предела представления чисел с плавающей точкой.
Когда число становится настолько маленьким, что у него уже нет
смещенного порядка, оно становится денормализованным. Вместо того,
чтобы заменить число нулем, процессор 8087 записывает наименьшее
значение порядка и ненормализованную мантиссу. Это означает, что
число теряет точность, так как у его мантиссы появляются незначащие
нули. Но денормализованный результат все же точнее, чем просто
нуль. И это тот случай, при котором сопроцессор 8087, продолжая
работу, наилучшим образом реагирует на плохие условия. Пометка
числа, как денормализованного, должна насторожить вас. При этом
также устанавливается бит денормализации в регистре особых
ситуаций, и остается установленным до тех пор, пока команда FCLEX
не сбросит биты особых ситуаций. С помощью анализа флагов
программа может зарегистрировать возникновение ошибки и отнестись к
результатам с подозрением.
Содержание Назад Вперед