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

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

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

Знак: 1 бит.
Порядок: 19 бит[1]; смещение порядка: +262143 (3FFFFh).
Мантисса: 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. 1,0 1,1 "IEEE Arithmetic". Архивировано 19 июня 2020. Дата обращения: 17 марта 2020.
  2. Гаврилов К. В. Об аппроксимации некоторых трансцендентных функций в компьютерной арифметике. // Автоматика и программная инженерия. — 2020. — Т. 3. — С. 51–59. Архивировано 8 июня 2021 года.
  3. R. Crandall, J. Papadopoulos. Octuple-precision floating point on Apple G4 (archived copy on web.archive.org). — 2002. Архивировано 28 июля 2006 года.