русс | укр

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

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

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

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


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

Безответные NaN


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


Безответные NaN - это те, которые имеют в самом значащем разряде своей мантиссы единицу. Процессор i486 выдает вещественную неопределенность (определяемую ниже) - один из видов QNaN - как ответ по умолчанию на конкретные условия возникновения исключения. Процессор i486 может также получать другие виды QNaN преобразованием SNaN. Процессор i486 переводит SNaN в QNaN, устанавливая в самом значащем разряде мантиссы единицу. Остальные биты мантиссы остаются неизменными, поэтому диагностическая информация, которая могла храниться в этих битах SNaN переходит в QNaN. Процессор i486 будет также генерировать особое QNaN, вещественную неопределенность, как маскированный ответ на исключение недопустимой операции. Это NaN имеет отрицательный знак, его мантисса кодируется как 1100..00. Все другие NaN представляют из себя значения, созданные программистом или полученные из значений, созданных программистом.

Как сигнальные, так и безответные NaN поддерживаются во всех операциях. QNaN генерируется как маскированный ответ на исключение недопустимой операции или как результат операции, в которой хотя бы один операнд является QNaN. При генерации QNaN процессор i486 придерживается правил, показанных в Таблице 16-5.

Таблица 16-5. Правила Генерирования QNaN +---------------------------------------------------------------+| Операция | Действие |+-------------------------------+-------------------------------|| | || Вещественная над SNaN и QNaN. | Передает операнд типа QNaN. || | || Вещественная над двумя SNaN. | Передает QNaN, получаемое || | переводом SNaN, которое имеет || | большую мантиссу. || | || Вещественная над двумя QNaN. | Передает QNaN, которое имеет || | большую мантиссу. || | || Вещественная над SNaN и | Передает QNaN, получаемое || другим числом. | переводом SNaN. || | || Вещественная над QNaN и | Передает QNaN. || другим числом. | || | || Недопустимая, не включающая | Передает вещественную || типа NaN. | неопределенность типа QNaN. || | |+---------------------------------------------------------------+

Обратите внимание, что обработка операнда QNaN имеет больший приоритет, чем все исключительные ситуации, за исключением конкретных исключительных ситуаций, связанных с недопустимыми операциями (смотрите раздел "Приоритетность исключительных ситуаций" в этой главе).



Безответные NaN можно было бы использовать, например, для того, чтобы ускорить отладку. В начальной фазе тестирования программа часто содержит многочисленные ошибки. Млжно было бы написать обработчик исключений для того, чтобы сохранять диагностическую информацию в памяти всегда, когда вызывается этот обработчик. После сохранения диагностической информации он мог бы выдавать QNaN как результат ошибочной команды, а это QNaN могло бы указывать на область памяти, где собраны диагностики. Затем программа могла бы продолжиться, создавая различные NaN для каждой ошибки. После завершения программы результирующие NaN могли бы быть использованы для доступа к диагностическим данным, сохраненным в момент прохождения ошибки. Таким образом можно было бы диагностировать и исправлять сразу много ошибок за один проход тестирования.

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



<== предыдущая лекция | следующая лекция ==>
Сигнальные NaN | Неопределенность


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


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

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

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


 


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

 
 

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

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