formato de punto flotante decimal64


En computación , decimal64 es un formato de numeración de computadora de punto flotante decimal que ocupa 8 bytes (64 bits) en la memoria de la computadora. Está diseñado para aplicaciones en las que es necesario emular exactamente el redondeo decimal, como los cálculos financieros y fiscales.

Decimal64 admite 16 dígitos decimales de significado y un rango de exponentes de −383 a +384, es decir, ±0,000 000 000 000 000 × 10 −383^ a ±9,999 999 999 999 999 × 10 384^ . (Equivalentemente, ±0 000 000 000 000 000 × 10 −398^ a ±9 999 999 999 999 999 × 10 369^.) Por el contrario, el formato binario correspondiente, que es el tipo más utilizado, tiene un rango aproximado de ±0,000 000 000 000 001 × 10 −308^ a ±1,797 693 134 862 315 × 10 308^ . Debido a que el significado no está normalizado, la mayoría de los valores con menos de 16 dígitos significativos tienen múltiples representaciones posibles; 1 × 10 2 = 0,1 × 10 3 = 0,01 × 10 4 , etc. El cero tiene 768 representaciones posibles (1536 si se incluyen ambos ceros con signo ).

El punto flotante decimal64 es un formato de punto flotante decimal relativamente nuevo, presentado formalmente en la versión 2008 [1] de IEEE 754 , así como con ISO/IEC/IEEE 60559:2011 . [2]

IEEE 754 permite dos métodos de representación alternativos para valores decimal64. El estándar no especifica cómo indicar qué representación se utiliza, por ejemplo, en una situación en la que los valores decimal64 se comunican entre sistemas:

Ambas alternativas proporcionan exactamente el mismo rango de números representables: 16 dígitos de significado y 3 × 2 8 = 768 valores de exponente decimal posibles. (Todos los posibles valores de exponentes decimales almacenables en un número binary64 se pueden representar en decimal64, y la mayoría de los bits del significado de un binary64 se almacenan manteniendo aproximadamente el mismo número de dígitos decimales en el significado).

En ambos casos, los 4 bits más significativos de la mantisa (que en realidad solo tienen 10 valores posibles) se combinan con los 2 bits más significativos del exponente (3 valores posibles) para usar 30 de los 32 valores posibles de un 5 bits. campo. Las combinaciones restantes codifican infinitos y NaN .