¿Cómo almacena una computadora puntos flotantes?

de la misma manera que almacena todo lo demás, en bits. La forma en que se interpretan esos bits depende de usted (o en este caso del programa).
Para ser más claros, digamos que tenemos un compilador que almacena punto flotante y enteros tanto en 1 byte (principalmente es de 4 bytes). Entonces tiene 32 bits para representar un número real, así como un número entero. Como los enteros están igualmente espaciados, puede comprender fácilmente el concepto cuando alguien dice que el valor máximo de un entero que se puede almacenar es 2 ^ 32. Sin embargo, es un poco más complejo para los números reales, porque hay infinitos números reales entre dos enteros. Entonces hay un concepto de precisión. Explicar todo el concepto aquí tomará mucho tiempo y esfuerzo, por lo que solo voy a indicarle que lea el concepto de precisión en IEEE 754. En resumen, no todos los números reales se pueden representar como coma flotante (incluso debajo El valor máximo representable). Sí, lo escuchaste bien. Digamos, por ejemplo, 3.541234 puede no ser representable, pero 3.541235 puede ser. Apenas lo notamos, porque el espacio entre el valor representable en el extremo inferior de la recta numérica (cerca de 0) es muy pequeño y aumenta a medida que avanzamos hacia las direcciones positiva y negativa de la recta numérica. A valores muy altos, incluso algunos valores integrales no son representables por puntos flotantes.

Para resumir, solo se pueden representar 2 ^ 32 números usando 32 bits, y lo mismo es cierto para los puntos flotantes. Es solo que, los números están desigualmente espaciados en el caso de los puntos flotantes, lo que permite que su rango sea mayor que el de los enteros representados por 32 bits.

Este es uno de los ejemplos clásicos de limitaciones de la informática. Nunca podemos replicar la verdadera naturaleza de los números reales usando una computadora digital.

Los números de coma flotante se almacenan con 24 o 53 bits para la mantisa, 1 bit para el signo y el resto para el exponente. En lugar de copiar y pegar toda la historia aquí, solo me referiré al capítulo 3 de mi libro de texto de HPC:

Aritmética informática

Introducción a la informática científica de alto rendimiento