Исчезновение порядка: различия между версиями
[отпатрулированная версия] | [отпатрулированная версия] |
Chobot (обсуждение | вклад) м робот добавил: ko:언더플로 |
Mercury (обсуждение | вклад) Нет описания правки |
||
(не показано 13 промежуточных версий 10 участников) | |||
Строка 1: | Строка 1: | ||
'''Исчезновение порядка''' или '''антипереполнение''' — ситуация, когда результат операции с [[плавающая запятая|плавающей запятой]] становится настолько близким к нулю, что порядок числа выходит за пределы разрядной сетки. |
'''Исчезновение порядка''', '''потеря значимости''' или '''антипереполнение''' ({{lang-en|floating-point underflow}}) — ситуация, когда результат операции с [[плавающая запятая|плавающей запятой]] становится настолько близким к нулю, что порядок числа выходит за пределы разрядной сетки. |
||
Например, в арифметике [[Число одинарной точности|одинарной точности]] (с минимальным числом 1,2·10<sup> |
Например, в арифметике [[Число одинарной точности|одинарной точности]] (с минимальным нормализованным числом 1,2·10<sup>−38</sup>) к исчезновению порядка приведёт операция 10<sup>−20</sup>·10<sup>−30</sup> = 10<sup>−50</sup>. |
||
В большинстве случаев система просто выдаёт результатом 0, но иногда желательно более чётко отличать ненулевые числа от нуля. Например, если в дальнейшем результат используется в качестве делителя, то это поможет избежать [[деление на ноль|деления на ноль]]. Использование [[Денормализованные числа|денормализованных чисел]] позволяет обнулять старшие биты мантиссы, имитируя этим уменьшение порядка сверх возможностей разрядной сетки, и полностью исключает антипереполнения типа <math>a \pm b</math>. Правда, происходит это за счёт уменьшения количества значащих цифр, а значит точности числа. Впрочем, даже введение [[Денормализованные числа|денормализованных чисел]] качественно не меняет ситуацию: после того, как все биты мантиссы будут обнулены, результатом всё же станет 0. Так, в приведённом примере результат нельзя представить даже [[Денормализованные числа|денормализованным числом]], поскольку минимальное положительное [[Денормализованные числа|денормализованное число]] одинарной точности — примерно 1.4·10<sup>−45</sup>, и результатом будет 0. |
|||
Заманчиво результатом такой операции сделать 0; но это чревато, например, [[деление на ноль|делением на ноль]]. В зависимости от настроек, система в таком случае может либо выдать ошибку (установить бит состояния, вызвать [[прерывание]], возбудить [[обработка исключений|аварийную ситуацию]] и т. д.), либо проигнорировать антипереполнение и вернуть 0 в качестве результата. |
|||
== См. также == |
== См. также == |
||
* [[Арифметическое переполнение]] |
* [[Арифметическое переполнение]] |
||
* [[Денормализованные числа]] |
|||
{{compu-stub}} |
{{compu-stub}} |
||
{{нет источников|дата=2012-06-20}} |
|||
[[Категория:Арифметика с плавающей запятой]] |
[[Категория:Арифметика с плавающей запятой]] |
||
[[de:Arithmetischer Unterlauf]] |
|||
[[en:Arithmetic underflow]] |
|||
[[it:Arithmetic underflow]] |
|||
[[ko:언더플로]] |
Текущая версия от 11:07, 9 мая 2022
Исчезновение порядка, потеря значимости или антипереполнение (англ. floating-point underflow) — ситуация, когда результат операции с плавающей запятой становится настолько близким к нулю, что порядок числа выходит за пределы разрядной сетки.
Например, в арифметике одинарной точности (с минимальным нормализованным числом 1,2·10−38) к исчезновению порядка приведёт операция 10−20·10−30 = 10−50.
В большинстве случаев система просто выдаёт результатом 0, но иногда желательно более чётко отличать ненулевые числа от нуля. Например, если в дальнейшем результат используется в качестве делителя, то это поможет избежать деления на ноль. Использование денормализованных чисел позволяет обнулять старшие биты мантиссы, имитируя этим уменьшение порядка сверх возможностей разрядной сетки, и полностью исключает антипереполнения типа . Правда, происходит это за счёт уменьшения количества значащих цифр, а значит точности числа. Впрочем, даже введение денормализованных чисел качественно не меняет ситуацию: после того, как все биты мантиссы будут обнулены, результатом всё же станет 0. Так, в приведённом примере результат нельзя представить даже денормализованным числом, поскольку минимальное положительное денормализованное число одинарной точности — примерно 1.4·10−45, и результатом будет 0.
См. также
[править | править код]Это заготовка статьи об информационных технологиях и вычислительной технике. Помогите Википедии, дополнив её. |
В статье не хватает ссылок на источники (см. рекомендации по поиску). |