Эта статья требует дополнительных ссылок для проверки . ( июнь 2016 г. ) ( Узнайте, как и когда удалить это сообщение-шаблон ) |
Форматы с плавающей точкой |
---|
IEEE 754 |
|
Другой |
Разрядность архитектуры компьютера |
---|
Кусочек |
Заявление |
|
Двоичная точность с плавающей запятой |
|
Десятичная точность с плавающей запятой |
|
В вычислении , восьмикратный точность является двоичным плавающей точкой основанного компьютера номер форматом , который занимает 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 интерпретируются особым образом.
Экспонента | Значащий ноль | Значащий и ненулевой | Уравнение |
---|---|---|---|
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 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 , Арифметика , не зависящая от языка
- Примитивный тип данных
Ссылки [ править ]
- ^ Р. Крэндалл; Х. Пападопулос (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 .