En informática , la precisión óctuple es un formato numérico binario de punto flotante que ocupa 32 bytes (256 bits ) en la memoria del ordenador. Esta precisión óctuple de 256 bits se utiliza en aplicaciones que requieren resultados con una precisión superior a la cuádruple .
El rango excede ampliamente lo necesario para describir el tamaño del universo observable , con una precisión de hasta la longitud de Planck . Sin embargo, algunos problemas en matemáticas experimentales sí requieren una precisión óctuple (o superior). [ 1 ]
Formato binario de punto flotante de precisión óctuple IEEE 754: binary256
En su revisión de 2008, el estándar IEEE 754 especifica un formato binary256 entre los formatos de intercambio (no es un formato básico), que tiene:
- Bit de signo : 1 bit
- Ancho del exponente : 19 bits
- Precisión significativa : 237 bits (236 almacenados explícitamente)
El formato se escribe con un bit de adelanto implícito con valor 1 a menos que el exponente sea todo ceros. Por lo tanto, solo aparecen 236 bits de la mantisa en el formato de memoria, pero la precisión total es de 237 bits (aproximadamente 71 dígitos decimales: log 10 (2 237 ) ≈ 71,344 ).
Las piezas están dispuestas de la siguiente manera:
![]()
Codificación exponencial
El exponente binario de punto flotante de precisión óctuple se codifica utilizando una representación binaria con desplazamiento , donde el desplazamiento cero es 262143; también conocido como sesgo del exponente en el estándar IEEE 754.
- E mín = −262142
- E máx = 262143
- Sesgo del exponente = 3FFFF 16 = 262143
Por lo tanto, como lo define la representación binaria de desplazamiento, para obtener el exponente verdadero se debe restar el desplazamiento de 262143 del exponente almacenado.
Los exponentes almacenados 00000 16 y 7FFFF 16 se interpretan de forma especial.
El valor mínimo estrictamente positivo (subnormal) es 2 −262378 ≈ 10 −78984 y tiene una precisión de solo un bit. El valor mínimo positivo normal es 2 −262142 ≈ 2,4824 × 10 −78913 . El valor máximo representable es 2 262144 − 2 261907 ≈ 1,6113 × 10 78913 .
Ejemplos de precisión óctuple
Estos ejemplos se presentan en representación binaria , en formato hexadecimal , del valor de punto flotante. Esto incluye el signo, el exponente (sesgado) y la mantisa.
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 16 = +0 8000 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 = +infinito ffff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 16 = −infinito
0000 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 (número subnormal positivo más pequeño)
0000 0fff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff 16 = 2 −262142 × (1 − 2 −236 ) ≈ 2,4824279514643497882993282229138717236776877060796468692709532979137875392 × 10 −78913 (número subnormal más grande)
0000 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 16 = 2 −262142 ≈ 2.48242795146434978829932822291387172367768770607964686927095329791378756168 × 10 −78913 (número normal positivo más pequeño)
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 (número normal más grande)
3fff efff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff 16 = 1 − 2 −237 ≈ 0,99999999999999999999999999999999999999999999999999999999999999999999999995472 (el mayor número menor que uno)
3fff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 16 = 1 (uno)
3fff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 16 = 1 + 2 −236 ≈ 1.000000000000000000000000000000000000000000000000000000000000000000000000906 (número más pequeño mayor que uno)
Por defecto, 1/3 se redondea hacia abajo como la precisión doble , debido al número impar de bits en la mantisa. Por lo tanto, los bits más allá del punto de redondeo son 0101...que es menor que 1/2 de una unidad en el último lugar .
Implementaciones
La precisión óctuple se implementa raramente debido a su uso extremadamente infrecuente. Apple Inc. implementó la suma, la resta y la multiplicación de números de precisión óctuple con una mantisa de complemento a dos de 224 bits y un exponente de 32 bits. [ 1 ] Se pueden usar bibliotecas aritméticas generales de precisión arbitraria para obtener precisión óctuple (o superior), pero las implementaciones especializadas de precisión óctuple pueden lograr un mayor rendimiento.
Soporte de hardware
No se conoce ningún hardware con soporte nativo para precisión óctuple .
Véase también
- IEEE 754
- ISO/IEC 10967 , Aritmética independiente del idioma
- Tipo de datos primitivo
- Notación científica
Referencias
- 1 2 Crandall, Richard E. ; Papadopoulos, Jason S. (2002-05-08). "Punto flotante de precisión óctuple en Apple G4 (copia archivada en web.archive.org)" (PDF) . Archivado del original el 28-07-2006.(8 páginas)
Lecturas adicionales
- Beebe, Nelson HF (22 de agosto de 2017). Manual de cálculo de funciones matemáticas: Programación con la biblioteca de software portátil MathCW (1.ª ed.). Salt Lake City, UT, EE. UU.: Springer International Publishing AG . doi : 10.1007/978-3-319-64110-2 . ISBN 978-3-319-64109-6. LCCN 2017947446 .
- Aritmética binaria
- Tipos de punto flotante