stringtranslate.com

Formato de punto flotante de precisión óctuple

En informática , la precisión óctuple es un formato numérico informático basado en coma flotante binaria que ocupa 32 bytes (256 bits ) en la memoria de la computadora. Esta precisión óctuple de 256 bits es para aplicaciones que requieren resultados con una precisión superior a la cuádruple .

El rango excede ampliamente lo necesario para describir todas las limitaciones físicas conocidas dentro del universo observable o precisiones mejores que las unidades de Planck .

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 binario256 entre los formatos de intercambio (no es un formato básico), que tiene:

El formato se escribe con un bit de entrada implícito con valor 1 a menos que el exponente esté compuesto por todos 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 ). Los bits se distribuyen de la siguiente manera:

Disposición del formato de punto flotante de precisión óctuple

Codificación de exponentes

El exponente binario de punto flotante de precisión óctuple se codifica utilizando una representación binaria de desplazamiento , donde el desplazamiento cero es 262143; también conocido como sesgo de exponente en el estándar IEEE 754.

Por lo tanto, tal como lo define la representación binaria de desplazamiento, para obtener el exponente verdadero, el desplazamiento de 262143 debe restarse 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 normal positivo mínimo 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 dan en representación de bits , en 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 = +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 0000 16 = +infinitoffff f000 0000 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,248007 08647703657297018614776265182597360918266100276294348974547709294462 × 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,48242795146434978829932 822291387172367768770607964686927095329791378756168 × 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 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 ffff ffff 16
= 1 − 2 −237≈ 0,99999999999999999999999999999999999999999999999999999999999999999999995472 (número mayor menor que uno)
3fff f000 0000 0000 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 0000 0001 16
= 1 + 2 −236≈ 1.00000000000000000000000000000000000000000000000000000000000000000000000906 (número más pequeño mayor que uno)

De manera predeterminada, 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 rara vez se implementa, ya que su uso es extremadamente raro. Apple Inc. tenía una implementación de suma, resta y multiplicación de números de precisión óctuple con un mantisa de complemento a dos de 224 bits y un exponente de 32 bits. [1] Se pueden usar bibliotecas aritméticas de precisión arbitraria generales 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 ninguna implementación de hardware de precisión óctuple.

Véase también

Referencias

  1. ^ Crandall, Richard E. ; Papadopoulos, Jason S. (8 de mayo de 2002). "Comando de punto flotante de precisión óctuple en Apple G4 (copia archivada en web.archive.org)" (PDF) . Archivado desde el original el 28 de julio de 2006.{{cite web}}: CS1 maint: URL no apta ( enlace )(8 páginas)

Lectura adicional