Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

  • Знаковый бит : 1 бит
  • Ширина экспоненты : 19 бит
  • Существенная точность : 237 бит (236 явно сохранены)

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

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

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

  • E мин = −262142
  • E макс = 262143
  • Смещение экспоненты = 3FFFF 16 = 262143

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

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

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

Примеры восьмеричной точности [ править ]

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

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 16 = +08000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 16 = −0
7fff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 16 = + бесконечностьffff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 16 = - бесконечность
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 16
= 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 ffff 16
= 2 −262142 × (1-2 −236 )≈ 2.4824279514643497882993282229138717236776877060796468692709532979137875392 × 10 −78913 (наибольшее субнормальное число)
0000 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 16
= 2 −262142
≈ 2.48242795146434978829932822291387172367768770607964686927095329791378756168 × 10 −78913 (наименьшее положительное нормальное число)
7fff efff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff 16
= 2 262143 × (2 - 2 −236 )≈ 1,61132571748576047361957211845200501064402387454966951747637125049607182699 × 10 78913 (наибольшее нормальное число)
3fff efff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff 16
= 1-2 −237≈ 0,99999999999999999999999999999999999999999999999999999999999999999995472 (наибольшее число меньше единицы)
3fff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 16= 1 (один)
3fff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 16
= 1 + 2 −236≈ 1.0000000000000000000000000000000000000000000000000000000000000000000906 (наименьшее число больше единицы)

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

Реализации [ править ]

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

Поддержка оборудования [ править ]

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

См. Также [ править ]

  • Стандарт IEEE для арифметики с плавающей запятой (IEEE 754)
  • ISO / IEC 10967 , Арифметика , не зависящая от языка
  • Примитивный тип данных

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

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

Дальнейшее чтение [ править ]

  • Биби, Нельсон Х.Ф. (22.08.2017). Справочник по математическим вычислениям функций - Программирование с использованием переносимой программной библиотеки MathCW (1-е изд.). Солт-Лейк-Сити, Юта, США: Springer International Publishing AG . DOI : 10.1007 / 978-3-319-64110-2 . ISBN 978-3-319-64109-6. LCCN  2017947446 .