WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

Денормализованные числа (англ. denormalized numbers, subnormal numbers) — вид чисел с плавающей запятой, определённый в стандарте IEEE 754. При записи в форматах float, double, long double их экспонента будет записана как 0. Для получения их значения не требуется использование неявной единицы; мантисса просто умножается на наименьшую для данного формата экспоненту.

Денормализованные числа находятся ближе к 0, чем наименьшее представимое нормализованное число.

Предпосылки к появлению

Денормализованные числа гарантируют, что сложение и вычитание чисел с плавающей точкой не приведёт к антипереполнению — два близлежащих нормализованных числа всегда имеют представимую ненулевую разность. Без постепенного антипереполнения при вычитании двух чисел может возникнуть антипереполнение и результат станет равен нулю, даже если числа не равны. Это может, в свою очередь, привести к ошибкам деления на ноль, которые не могут произойти, если постепенное антипереполнение используется[1].

Денормализованные числа были реализованы в математическом сопроцессоре Intel 8087 в то время, когда стандарт IEEE 754 был в процессе написания. Они были наиболее спорной особенностью предложенной заявки, которая в конце концов была принята[2], но эта реализация продемонстрировала возможность аппаратной работы с денормализованными числами на практике. Некоторые реализации модулей работы с плавающей точкой аппаратно не поддерживают денормализованные числа, выполняя их обработку программно. Хотя такая обработка прозрачна для пользователя, она может приводить к тому, что расчёты, генерирующие или получающие на вход денормализованные числа, будут выполняться намного дольше, чем те же расчёты с нормализованными числами.

Вопросы производительности

Некоторые процессоры и математические сопроцессоры работают с денормализованными числами аппаратным способом с той же скоростью, что и с нормализованными. В других же такая аппаратная обработка не реализована (например, чтобы избежать усложнения реализации FPU), и малые значения либо приводятся сразу к нулю (см. Антипереполнение), либо обрабатываются в операционной системе программным способом. Второй вариант приводит к увеличению времени обработки денормализованных чисел.

Примечания

  1. William Kahan. IEEE 754R meeting minutes, 2002. Проверено 1 декабря 2013. (англ.)
  2. An Interview with the Old Man of Floating-Point. University of California, Berkeley. (англ.)

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии