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

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

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

В редакции 2008 г. IEEE 754 стандарт определяет двоичный256 формат среди форматы обмена (это не базовый формат), поскольку он имеет:

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

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

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

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

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

Сохраненные экспоненты 0000016 и 7FFFF16 интерпретируются специально.

ЭкспонентаЗначащий нольЗначащий и ненулевойУравнение
00000160, −0субнормальные числа(-1)знак × 2−262142 × 0. Значащие биты2
0000116, ..., 7FFFE16нормализованное значение(-1)знак × 2биты экспоненты2 × 1. Значащие биты2
7FFFF16±NaN (тихо, сигнализирует)

Минимальное строго положительное (субнормальное) значение равно 2−262378 ≈ 10−78984 и имеет точность всего один бит. Минимальное положительное нормальное значение - 2−262142 ≈ 2.4824 × 10−78913.Максимальное представимое значение - 2262144 − 2261907 ≈ 1.6113 × 1078913.

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

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

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000016 = +08000 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 = + бесконечностьffff f000 0000 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  (наименьшее положительное субнормальное число)
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  (наибольшее субнормальное число)
0000 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000016= 2−262142≈ 2.48242795146434978829932822291387172367768770607964686927095329791378756168 × 10−78913  (наименьшее положительное нормальное число)
7fff efff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff16= 2262143 × (2 − 2−236)≈ 1.61132571748576047361957211845200501064402387454966951747637125049607182699 × 1078913  (наибольшее нормальное число)
3fff efff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff16= 1 − 2−237≈ 0,9999999999999999999999999999999999999999999999999999999999999999999995472 (наибольшее число меньше единицы)
3fff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000016= 1 (один)
3fff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000116= 1 + 2−236≈ 1.00000000000000000000000000000000000000000000000000000000000000000000000906 (наименьшее число больше единицы)

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

Реализации

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

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

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

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

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

  1. ^ Р. Крэндалл; Х. Пападопулос (8 мая 2002 г.). "Плавающая точка восьмеричной точности в Apple G4 (архивная копия на web.archive.org)" (PDF). Архивировано 28 июля 2006 года.CS1 maint: неподходящий URL (связь)

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