IEEE 754-2008

Материал из Википедии — свободной энциклопедии
(перенаправлено с «IEEE 754»)
Перейти к: навигация, поиск

IEEE 754 (IEC 60559) — широко используемый стандарт IEEE, описывающий формат представления чисел с плавающей точкой. Используется в программных (компиляторы с разных языков программирования) и аппаратных (CPU и FPU) реализациях арифметических действий (математических операций).

Стандарт описывает:

Стандарт 2008 года заменяет IEEE 754-1985. В новый стандарт включены двоичные форматы из предыдущего стандарта и три новых формата. В соответствии с действующим стандартом, реализация должна поддерживать по крайней мере один из основных форматов, как и формат арифметики и формат обмена.

Список стандартов:

  • IEEE 754—1985;
  • IEEE 754—1997;
  • IEEE 754—2008.

Разработка стандарта[править | править вики-текст]

Текущая версия IEEE 754—2008 была опубликована в 2008 году. Она дополняет и заменяет предыдущую версию IEEE 754-1985, созданную Dan Zuras и отредактированную Mike Cowlishaw.

Международный стандарт ISO/IEC/IEEE 60559:2011 (с идентичным IEEE 754—2008) был одобрен и опубликован для JTC1/SC 25 под соглашением ISO/IEEE PSDO.

Бинарные форматы в первоначальном стандарте включены в новый стандарт наряду с тремя новыми основными форматами (одним бинарным и двумя десятичными). Для того, чтобы соответствовать текущему стандарту, реализация должна реализовать по крайней мере один из основных форматов.

По состоянию на сентябрь 2015 года, стандарт пересматривается с целью включения уточнений.

Формат[править | править вики-текст]

Формат IEEE 754 представляет собой «совокупность представлений числовых значений и символов». Формат может также включать в себя, способ кодирования.

Формат включает в себя:

  • Конечные цифры, которые могут быть с основанием 2 (двоичная) либо с основанием 10 (десятичная система). Каждое конечное число описывается тремя целыми числами: s = знак (ноль или один), с = мантисса (коэффициент), Q = экспонента. Численное значение конечного числа является: (−1)s × c × bq где b является основанием (2 или 10). Например, если основание 10, знак равен 1 (обозначающий отрицательное число), мантисса 12345, и экспонента ровна −3, тогда значение числа будет −11 × 12345 × 10−3 = −1 × 12345 × .001 = −12.345.
  • Две бесконечности: +∞ и −∞.
  • Два вида NaN: тихий NaN (qNaN) и сигнализационный NaN (sNaN). NaN может нести полезную нагрузку, предназначенный для диагностической информации, указывающей источник NaN. Знак NaN не имеет никакого значения, но может быть предсказуемым в некоторых обстоятельствах.

Возможные конечные значения, которые могут быть представлены в формате, определяются основанием b, количеством цифр в мантиссе (с точностью р) и максимальным значением emax:

  • c должен быть целым числом в диапазоне от нуля до bp−1 (если b=10 и p=7 тогда c может быть от 0 до 9999999)
  • q должно быть целым числом, чтобы 1−emaxq+p−1 ≤ emax (если p=7 и emax=96 тогда q может быть от −101 до 90).

Следовательно (для предыдущего примера) наименьшее отличное от нуля положительное число, которое может быть представлено 1 × 10-101 а самым большым 9999999 × 1090 (9,999999 × 1096), а также полный спектр чисел от −9,999999 × 1096 до 9,999999 × 1096. Числа -b1-Emax и b1-Emax (здесь, −1 × 10-95 и 1 × 10-95) являются самыми маленькими (по абсолютной величине) нормальными числами; ненулевые числа между этими наименьшими числами называются субнормальные.

Так же в стандарте предусматривается возможность сохранить 0. +0 и −0 являются разными числами.

Представление и кодирование в памяти[править | править вики-текст]

Некоторые числа могут иметь несколько представлений в формате, в котором они были только что описаны. Например, если b = 10 и р = 7, −12,345 могут быть представлены −12345 × 10-3, −123450 × 10-4 и −1234500 × 10-5. Тем не менее, для большинства операций, таких как арифметические операции, результат (значение) не зависит от представления входов.

Для десятичных форматов, любое представление справедливо, и совокупность этих представлений называется когортами. Когда результат может иметь несколько представлений, стандарт определяет, какой выбран членом когорты.

Для бинарных форматов, представление делается уникальным путём выбора наименьшего представляемого показателя. Для чисел с показателем в нормальном диапазоне (не все из них или все нули), ведущий бит мантиссы всегда будет равен 1. Следовательно, ведущий 1 бит может подразумеваться, а не сохраняться явно в памяти. Это правило называется ведущей битной конвенцией или скрытой битной конвенцией. Правило позволяет сберечь 1 бит памяти, чтобы иметь ещё один бит точности. Ведущий бит конвенции не используется для субнормальных чисел; их показатель находится за пределами нормального диапазона значений.

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

Ссылки[править | править вики-текст]