русс | укр

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

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

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

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


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

Переполнения


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


Исключение переполнения может возникнуть всегда, когда округленный истинный результат превышает по значению наибольшее конечное число в принимающем формате. Исключение может произойти при выполнении большинства арифметических команд и некоторых команд перевода формата, а именно: FST(P), F(I)ADD(P), F(I)SUB(R)(P), F(I)MUL(P), FDIV(R)(P), FSCALE, FYL2X и FYL2XP1.

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

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

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



  • Если в памяти (это может случится только с командами сохранения), то никакие результаты в ней не сохраняются. Вместо этого, операнд остается нетронутым в стеке. Так как данные в стеке имеют формат расширенной точности, обработчик исключений либо заново выполняет команду сохранения после некоторых исправлений операнда, либо округляет мантиссу в стеке до точности принимающего формата, как требует стандарт. В конечном счете обработчик исключений должен сохранять значение в принимающем формате в памяти при продолжении программы.
Таблица 16-12. Результаты Маскированного Переполнения +---------------------------------------------------------------+| Режим | Знак Истинного | Результат || Округления | Результата | |+--------------------+------------------+-----------------------|| | | || До ближайшего | + | +oo || | - | -oo || | | |+--------------------+------------------+-----------------------|| | | Наибольшее конечное || К -бесконечности | + | положительное число || | - | -oo || | | |+--------------------+------------------+-----------------------|| | | || К +бесконечности | + | +oo || | - | Наибольшее конечное || | | отрицательное число |+--------------------+------------------+-----------------------|| | | Наибольшее конечное || По направлению | + | положительное число || к нулю | - | Наибольшее конечное || | | отрицательное число |+---------------------------------------------------------------+


<== предыдущая лекция | следующая лекция ==>
Денормальные операнды | Отрицательные переполнения


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


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

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

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


 


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

 
 

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

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