En el capítulo "Cómo funcionan los números" del libro "Cómo funciona JavaScript" de Douglas Crockford se menciona que un número en JavaScript se compone de 1 bit con signo, 11 bits de exponente y 53 bits significativos. Esto totaliza 65 bits y una codificación inteligente permite que estos 65 bits se almacenen en 64 bits, lo que entendemos como un número de coma flotante de 64 bits.
Yendo más allá, los dígitos significativos se almacenan como una fracción binaria en el rango 0.5 <= significand < 1.0
De esa forma, el bit más significativo siempre es un 1. Dado que ese bit siempre es un 1, no es necesario almacenarlo en el número. Esto produce un bit de bonificación.
no entiendo
Por favor, ayúdame a comprender este concepto o guíame en la dirección que pueda ayudarme.
La porción de fracción (mantisa) del formato de coma flotante de doble precisión a la que se refiere Crockford tiene 52 bits, no 53:
El artículo de Wikipedia se refiere a "precisión efectiva". Ellos lo explican así:
El formato se escribe con el significado teniendo un bit entero implícito de valor 1. Con los 52 bits del significado de la fracción (F) apareciendo en el formato de memoria, la precisión total es por lo tanto de 53 bits (aproximadamente 16 dígitos decimales, 53 log10(2 ) ≈ 15.955).
Eso debe ser a lo que Crockford se refiere como "codificación inteligente". Desde la perspectiva de un programador, no importa mucho a menos que estés haciendo algo exótico como un juego de bits o una conversión de enteros. Es por eso que Crockford no lo explica más.
Relacionado: ¿Es 52 o 53 bits de precisión de coma flotante?