Число восьмерной точности

Число́ восьмерно́й то́чности (англ. Octuple precision) — компьютерный формат представления чисел с плавающей запятой, занимающий в памяти восемь последовательных двойных слов, т.е. 32 байта. Данное название обусловлено сложившейся терминологией, в которой число одинарной точности имеет размер двойного слова. Как правило, обозначает формат числа с плавающей запятой binary256 стандарта IEEE 754.

Формат числа восьмерной точности

Знак: 1 бит.
Порядок: 19 бит[1].
Мантисса: 237 бит (236 явно хранятся).

Эквивалентное количество значащих десятичных цифр (при одинаковой средней относительной погрешности представления): 71,7[2].

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

Небольшие константы:[1]

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 = +
ffff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000016 = −∞
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.999999999999999999999999999999999999999999999999999999999999999999999995472
  (наибольшее число меньше единицы)
3fff f000 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
  (наименьшее число больше единицы)

Поддержка

Использование восьмерной точности на данный момент весьма редкое. В компании Apple реализовали сложение, вычитание и умножение чисел с восьмерной точностью в отличном от IEEE 754 формате: он имеет 224-битную мантиссу в дополнительном коде и 32-битный показатель степени.[3] Можно использовать общие арифметические библиотеки с произвольной точностью для получения восьмерной (или более высокой) точности, но ещё не существует известной аппаратной реализации таковой.

См. также

Примечания

  1. IEEE Arithmetic
  2. Гаврилов К. В. Об аппроксимации некоторых трансцендентных функций в компьютерной арифметике. // Автоматика и программная инженерия. — 2020. Т. 3. С. 51–59.
  3. R. Crandall, J. Papadopoulos. Octuple-precision floating point on Apple G4 (archived copy on web.archive.org). — 2002.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.