Исчезновение порядка

(перенаправлено с «Антипереполнение»)

Исчезновение порядка, потеря значимости или антипереполнение (англ. floating-point underflow) — ситуация, когда результат операции с плавающей запятой становится настолько близким к нулю, что порядок числа выходит за пределы разрядной сетки.

Например, в арифметике одинарной точности (с минимальным нормализованным числом 1,2·10−38) к исчезновению порядка приведёт операция 10−20·10−30 = 10−50.

В большинстве случаев система просто выдаёт результатом 0, но иногда желательно более чётко отличать ненулевые числа от нуля. Например, если в дальнейшем результат используется в качестве делителя, то это поможет избежать деления на ноль. Использование денормализованных чисел позволяет обнулять старшие биты мантиссы, имитируя этим уменьшение порядка сверх возможностей разрядной сетки, и полностью исключает антипереполнения типа . Правда, происходит это за счёт уменьшения количества значащих цифр, а значит точности числа. Впрочем, даже введение денормализованных чисел качественно не меняет ситуацию: после того, как все биты мантиссы будут обнулены, результатом всё же станет 0. Так, в приведённом примере результат нельзя представить даже денормализованным числом, поскольку минимальное положительное денормализованное число одинарной точности — примерно 1.4·10−45, и результатом будет 0.

См. также

править