русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Отрицательные переполнения


Дата добавления: 2015-06-12; просмотров: 972; Нарушение авторских прав


Отрицательные переполнения могут возникнуть при выполнении команд FST(P), FADD(P), FSUB(RP), FMUL(P), F(I)DIV(RP), FSCALE, FPREM(1), FPTAN, FSIN, FCOS, FSINCOS, FPATAN, F2XM1, FYL2X и FYL2XP1.

Два события могуть вызвать отрицательное переполнение:

  1. Получение маленького результата, который из-за того, что он слишком мал, может привести в дальнейшем к некоторым другим исключениям (таким, как переполнение при делении).
  2. Получение неточного результата; то есть полученный результат будет отличаться от того, который был бы вычислен при неограниченном диапазоне порядка и точности.

Какое из этих событий вызовет исключение отрицательного переполнения зависит от того, маскировано ли исключение:

  1. Исключение отрицательного переполнения маскировано. Исключение будет вызвана как при маленьком, так и при неточном результате.
  2. Исключение отрицательного переполнения не маскировано. Исключение будет генерироваться при маленьком результате, не игнорироваться при неточности.

Ответ на исключение отрицательного переполнения также зависит от того, маскировано ли исключение:

  1. Маскированный ответ. Результат является денормальным числом или нулем. Также генерируется исключение точности.
  2. Немаскированный ответ. Немаскируемый ответ зависит от того, как предполагает команда сохранять результат - в стеке или в памяти:
    • Если в стеке, то истинный результат умножается на 2**(24576) и округляется. (Смещенный порядок 24576 равен 3 x 2**(13).) Мантисса округляется до требуемой точности (для тех команд, которые зависят от бита управления точностью (PC) управляющего слова, округление идет в зависимости от этого бита, в противном случае округляется до расширенной точности). При этом бит округления вверх (C1) слова состояния устанавливается, если мантисса была округлена с избытком.

Увеличение порядка числа на 24576 обычно приводит число насколько возможно ближе к середине диапазона порядка, так что, если это необходимо, его можно использовать в последовательных операциях масштабирования с наименьшим риском получить дальнейшие исключения. Однако, при использовании команды FSCALE может случиться, что результат будет слишком маленький, и произойдет отрицательное переполнение даже после смещения порядка. В этом случае, немаскированный ответ является по существу тем же самым, что и маскированный округленный до ближайшего, а именно плюс/минус нулем. Основная цель - гарантировать, что обработчик внутренних прерываний обнаружит, что увеличение показателя на 24576 не приведет к корректной работе без определения программистом, который программирует показательные функции и процедуры перевода из десятичного в бинарный вид, какой обработчик внутренних прерываний следует вызвать, если их несколько.



    • Если в памяти (это может случится только с командами сохранения), то никакие результаты в ней не сохраняются. Вместо этого, операнд остается нетронутым в стеке. Так как данные в стеке имеют формат расширенной точности, обработчик исключений либо заново выполняет команду сохранения после некоторых исправлений операнда, либо округляет мантиссу в стеке до точности принимающего формата, как требует стандарт. В конечном счете обработчик исключений должен сохранять значение в принимающем формате в памяти при продолжении программы.


<== предыдущая лекция | следующая лекция ==>
Переполнения | Неточный результат (точность)


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.008 сек.