Численное переполнение наступает тогда, когда результат превышает
наибольшее конечное число в формате приемника. Переполнение опасно,
так как знак может оказаться неверным, а результат будет не
бесконечность, а слишком большое для представления число.
Пример: деление большого числа на малое число (близкое к 0). Знак
результата будет зависеть от знака малого числа, хотя он может быть
неверным в результате ошибки округления.
Специальное значение формируется в зависимости от режима
округления, установленного в регистре управления сопроцессора:
1) если установлен режим округления к ближайшему числу - то
результат- плюс или минус бесконечность;
2) если установлен режим округления к минус бесконечности, то для
положительных чисел результат - максимальное число больше нуля, для
отрицательных чисел - минус бесконечность;
3) если установлен режим округления к плюс бесконечности, то для
положительных чисел результат – плюс бесконечность, а для
отрицательных чисел - максимальное число меньше нуля;
4) если установлен режим округления к нулю, то для положительных
чисел результат - максимальное число больше нуля, для отрицательных
чисел - максимальное число меньше нуля.
4.3.6.Недействительная операция.
Возникает, когда нет приемлемого результата в арифметической
операции, операции сравнения или при стековых операциях (при этом
флаг SF в регистре состояния равен единице):
при реализации операций сложения, вычитания, умножения и деления
может возникнуть особый случай недействительной операции (например,
при запрещенных операциях с бесконечностью);
- при реализации операции сравнения результатом является код
условия. Обычно он показывает отношения “<”, “=”, “>”. Если
при этом возникает особый случай недействительной операции
(например, в проективном режиме при сравнении бесконечности и
конечного числа, или при сравнении нечисла и конечного числа), то
код условия принимает специальное значение “не сравнимы”. При этом
нарушается закон трихотомии арифметики : .
Это вызывает трудности в
языках высокого уровня при исполнении оператора IF, так как,
например, отрицанием условия больше или равно является не только
меньше, но и “не сравнимы”;.
особый случай стека: переполнение, то есть попытка включения числа
в заполненный стек или антипереполнение, то есть попытка извлечения
числа из пустого стека;
Во всех случаях результатом недействительной операции будет нечисло
(NAN).
Нечисло – это двоичное вещественное число, у которого в поле
порядка все единицы, а в поле мантиссы - все, кроме значения,
зарезервированного за бесконечностью, то есть 1.000000...0.
Если один или оба операнда в операции -нечисло - то результатом
тоже является нечисло. Таким образом, полученное в промежуточном
результате операции нечисло распространяется в вычислениях и
выдается как окончательный результат.
Особый случай нечисла - неопределенность. Сопроцессор формирует
неопределенность как результат недействительной операции (остальные
нечисла формируются программистом).
Для вещественных чисел неопределенность - это нечисло у которого в
поле мантиссы две старшие цифры – единицы, а все остальные – нули
(1.1...00), а поле порядка одни единицы (11...11). Поле знака также
равно единице.
Для формата десятичных чисел неопределенность имеет следующее
представление :
Знак
мусор
75 - 78
71 - 74
67 - 70
63 - 66
0 - 62
хх...хх
Десятичную неопределенность нельзя преобразовать в вещественное
число, результат при этом - неопределенность.
Для двоичных целых форматов неопределенность представляется
максимальным по модулю отрицательным числом, то есть имеет код
0000...00
Знак
Целочисленная неопределенность при преобразовании в формат с
плавающей точкой дает обычное отрицательное число.
Попытка преобразования нечисла, денормализованного,
ненормализованного числа или бесконечности в формат целых чисел
вызывает особый случай недействительной операции, результатом
которой и является неопределенность.
Численное переполнение.
237
0
2 минуты
Нравится 0
Понравилась работу? Лайкни ее и оставь свой комментарий!
Для автора это очень важно, это стимулирует его на новое творчество!
Посоветуйте статью друзьям!
- Р Р‡.МессенРТвЂВВВВВВВВжер
- ВКонтакте
- РћРТвЂВВВВВВВВнокласснРСвЂВВВВВВВВРєРСвЂВВВВВВВВ
- РњРѕР№ Р В Р’В Р РЋРЎв„ўР В Р’В Р РЋРІР‚ВВВВВВВВРЎР‚
- Evernote
- Viber
- Telegram