Формат с плавающей запятой с восьмеричной точностью - Octuple-precision floating-point format

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

IEEE 754 двоичный формат с плавающей запятой восьмеричной точности: binary256

В своей редакции 2008 года стандарт IEEE 754 определяет формат binary256 среди форматов обмена (это не базовый формат) как имеющий:

Формат записывается с неявным ведущим битом со значением 1, если показатель степени не равен нулю. Таким образом , только 236 бит мантиссы появляются в формате памяти, но общая точность 237 бит (около 71 десятичных цифр: авторизуйтесь 10 (2 237 ) ≈ 71.344 ). Биты расположены следующим образом:

Макет формата с плавающей запятой восьмеричной точности

Экспонентное кодирование

Двоичная экспонента с плавающей запятой восьмикратной точности кодируется с использованием двоичного представления смещения с нулевым смещением 262143; также известный как смещение экспоненты в стандарте IEEE 754.

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

Сохраненные экспоненты 00000 16 и 7FFFF 16 интерпретируются особым образом.

Экспонента Значащий ноль Значащий и ненулевой Уравнение
00000 16 0 , -0 субнормальные числа (-1) знаковый бит × 2 −262142 × 0 знаковый бит 2
00001 16 , ..., 7FFFE 16 нормализованное значение (-1) знаковый бит × 2 разряда экспоненты 2 × 1 значащий бит 2
7FFFF 16 ± NaN (тихо, сигнализирует)

Минимальное строго положительное (субнормальное) значение равно 2 −262378 ≈ 10 −78984 и имеет точность всего один бит. Минимальное положительное нормальное значение составляет 2 −262142 ≈ 2,4824 × 10 −78913 . Максимальное значение равно представимо 2 поддерживает 262144 - 2 двести шестьдесят одна тысяча девятьсот семь ≈ 1,6113 × 10 78913 .

Примеры восьмеричной точности

Эти примеры даны в битовом представлении в шестнадцатеричном формате значения с плавающей запятой. Это включает знак, (смещенную) экспоненту и значащую.

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000016 = +0
8000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000016 = −0
7fff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000016 = +infinity
ffff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000016 = −infinity
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000116
= 2−262142 × 2−236 = 2−262378
≈ 2.24800708647703657297018614776265182597360918266100276294348974547709294462 × 10−78984
  (smallest positive subnormal number)
0000 0fff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff16
= 2−262142 × (1 − 2−236)
≈ 2.4824279514643497882993282229138717236776877060796468692709532979137875392 × 10−78913
  (largest subnormal number)
0000 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000016
= 2−262142
≈ 2.48242795146434978829932822291387172367768770607964686927095329791378756168 × 10−78913
  (smallest positive normal number)
7fff efff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff16
= 2262143 × (2 − 2−236)
≈ 1.61132571748576047361957211845200501064402387454966951747637125049607182699 × 1078913
  (largest normal number)
3fff efff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff16
= 1 − 2−237
≈ 0.999999999999999999999999999999999999999999999999999999999999999999999995472
  (largest number less than one)
3fff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000016
= 1 (one)
3fff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000116
= 1 + 2−236
≈ 1.00000000000000000000000000000000000000000000000000000000000000000000000906
  (smallest number larger than one)

По умолчанию 1/3 округляется как двойная точность из-за нечетного числа битов в мантиссе. Таким образом, биты за точкой округления 0101... меньше 1/2 единицы в последнем месте .

Реализации

Восьмеричная точность реализуется редко, так как она используется крайне редко. У Apple Inc. была реализация сложения, вычитания и умножения чисел с восьмеричной точностью с 224-битной величиной дополнения до двух и 32-битной экспонентой. Можно использовать общие арифметические библиотеки произвольной точности для получения восьмеричной (или более высокой) точности, но специализированные реализации восьмеричной точности могут обеспечить более высокую производительность.

Поддержка оборудования

Нет известной аппаратной реализации восьмеричной точности.

Смотрите также

Рекомендации

дальнейшее чтение