Formato de coma flotante de precisión octuple - Octuple-precision floating-point format

En informática , la precisión octuple es un formato numérico de computadora binario basado en punto flotante que ocupa 32 bytes (256 bits ) en la memoria de la computadora. Esta precisión octuple de 256 bits es para aplicaciones que requieren resultados en una precisión superior al cuádruple . Este formato se utiliza raramente (si alguna vez) y muy pocos entornos lo admiten.

IEEE 754 formato de punto flotante binario de precisión octuple: 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), ya que tiene:

El formato se escribe con un bit inicial implícito con valor 1 a menos que el exponente sea todo ceros. Por lo tanto, solo aparecen 236 bits del significado 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:

Diseño de formato de punto flotante de precisión octuple

Codificación de exponentes

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

Por lo tanto, según lo definido por la representación binaria de compensación, para obtener el exponente verdadero, la compensación de 262143 debe restarse del exponente almacenado.

Los exponentes almacenados 00000 16 y 7FFFF 16 se interpretan especialmente.

Exponente Significand cero Significativo y distinto de cero Ecuación
00000 16 0 , −0 números subnormales (-1) bit de signo × 2 −262142 × 0 bits de signo 2
00001 16 , ..., 7FFFE 16 valor normalizado (-1) bit de signo × 2 bits de exponente 2 × 1 bits significativos 2
7FFFF 16 ± NaN (silencioso, señalización)

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 octuple

Estos ejemplos se dan en representación de bits , en hexadecimal , del valor de coma flotante. Esto incluye el signo, exponente (sesgado) y significando.

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 = +infinity
ffff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000016 = −infinity
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
  (smallest positive subnormal number)
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
  (largest subnormal number)
0000 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000016
= 2−262142
≈ 2.48242795146434978829932822291387172367768770607964686927095329791378756168 × 10−78913
  (smallest positive normal number)
7fff efff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff16
= 2262143 × (2 − 2−236)
≈ 1.61132571748576047361957211845200501064402387454966951747637125049607182699 × 1078913
  (largest normal number)
3fff efff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff16
= 1 − 2−237
≈ 0.999999999999999999999999999999999999999999999999999999999999999999999995472
  (largest number less than one)
3fff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000016
= 1 (one)
3fff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000116
= 1 + 2−236
≈ 1.00000000000000000000000000000000000000000000000000000000000000000000000906
  (smallest number larger than one)

Por defecto, 1/3 se redondea hacia abajo como doble precisión , debido al número impar de bits en el significado. Entonces, los bits más allá del punto de redondeo son 0101... menos de 1/2 de una unidad en el último lugar .

Implementaciones

La precisión de octuple 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 octuple con un significado de complemento a dos de 224 bits y un exponente de 32 bits. Se pueden usar bibliotecas aritméticas generales de precisión arbitraria para obtener una precisión octuple (o superior), pero las implementaciones especializadas de precisión octuple pueden lograr un mayor rendimiento.

Soporte de hardware

No se conoce una implementación de hardware de precisión octuple.

Ver también

Referencias

Otras lecturas