Исчезновение порядка: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
м →‎top: ПРО:CW, error 11, замена html-мнемоник символами юникода
Нет описания правки
Строка 1: Строка 1:
'''Исчезновение порядка''' или '''антипереполнение''' ({{lang-en|floating-point underflow}}) — ситуация, когда результат операции с [[плавающая запятая|плавающей запятой]] становится настолько близким к нулю, что порядок числа выходит за пределы разрядной сетки.
'''Исчезновение порядка''', '''потеря значимости''' или '''антипереполнение''' ({{lang-en|floating-point underflow}}) — ситуация, когда результат операции с [[плавающая запятая|плавающей запятой]] становится настолько близким к нулю, что порядок числа выходит за пределы разрядной сетки.


Например, в арифметике [[Число одинарной точности|одинарной точности]] (с минимальным числом 1,2·10<sup>−38</sup>) к исчезновению порядка приведёт операция 10<sup>−20</sup>·10<sup>−30</sup>&nbsp;=&nbsp;10<sup>−50</sup>.
Например, в арифметике [[Число одинарной точности|одинарной точности]] (с минимальным числом 1,2·10<sup>−38</sup>) к исчезновению порядка приведёт операция 10<sup>−20</sup>·10<sup>−30</sup>&nbsp;=&nbsp;10<sup>−50</sup>.


Наиболее естественным поведением системы выглядит получение нуля в качестве результата такой операции, но в некоторых случаях желательно более чётко отличать ненулевые числа от нуля. Например, если в дальнейшем результат используется в качестве делителя, то это поможет избежать [[деление на ноль|деления на ноль]]. Использование [[Денормализованные числа|денормализованных чисел]] позволяет обнулять старшие биты мантиссы, имитируя этим уменьшение порядка сверх возможностей разрядной сетки. Правда, происходит это за счёт уменьшения количества значащих цифр, а значит точности числа. Впрочем, даже введение [[Денормализованные числа|денормализованных чисел]] качественно не меняет ситуацию: после того, как все биты мантиссы будут обнулены, результатом всё же станет 0.
Заманчиво результатом такой операции сделать 0; но это чревато, например, [[деление на ноль|делением на ноль]]. В зависимости от настроек, система в таком случае может либо выдать ошибку, либо проигнорировать антипереполнение и вернуть 0 в качестве результата.


== См. также ==
== См. также ==

Версия от 09:39, 30 июля 2019

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

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

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

См. также