Convertidor IEEE 754: decimal a punto flotante de precisión simple y doble
Convierte un número decimal a IEEE 754 de precisión simple (32 bits) o doble (64 bits): bits de signo, exponente y mantisa, hexadecimal, valor almacenado exacto y error de redondeo, o decodifica bits hex.
Cómo funciona
valor = (−1)^signo × 1.fracción₂ × 2^(exponente − sesgo) · simple: 1 + 8 + 23 bits, sesgo 127 · doble: 1 + 11 + 52 bits, sesgo 1023 · exponente todo en 0 → subnormal (0.fracción × 2^(1 − sesgo)) o cero · todo en 1 → infinito o NaN · redondeo al más cercano, empates al par
IEEE 754 guarda un número real como un bit de signo, un exponente sesgado y una fracción (la mantisa sin su 1 inicial). La mayoría de las fracciones decimales —0.1, 0.2, 0.3— no tienen una expansión binaria finita, así que se redondean al valor representable más cercano. El convertidor muestra los campos de bits, el valor decimal exacto que realmente se almacena (calculado con aritmética de enteros grandes, sin aproximar) y el error de redondeo, lo que explica por qué 0.1 + 0.2 ≠ 0.3 en la mayoría de los lenguajes de programación.
Ejemplo resuelto
0.1 en precisión simple: signo 0, exponente 01111011 = 123 → 123 − 127 = −4, fracción 10011001100110011001101. El patrón hexadecimal es 0x3DCCCCCD y el valor que realmente se guarda es 0.100000001490116119384765625, con un error de conversión de +1.490e-9. En precisión doble el mismo número es 0x3FB999999999999A.
Fuentes: IEEE 754-2019 Standard for Floating-Point Arithmetic · D. Goldberg, What Every Computer Scientist Should Know About Floating-Point Arithmetic (1991)
Preguntas frecuentes
¿Por qué 0.1 no se puede guardar exactamente?
En binario, 1/10 es la fracción periódica 0.000110011001100…, igual que 1/3 se repite en decimal. El formato conserva 24 (simple) o 53 (doble) bits significativos y redondea el resto, así que el valor guardado queda ligeramente desviado: 0.100000001490116… en precisión simple.
¿Qué es el sesgo del exponente?
El campo del exponente se guarda como un número sin signo con un desplazamiento (127 en simple, 1023 en doble) para poder representar potencias de dos negativas. Resta el sesgo al campo almacenado para obtener el exponente real.
¿Qué son los números subnormales?
Cuando el campo del exponente es todo ceros, el 1 implícito pasa a ser 0, lo que permite valores menores que 2⁻¹²⁶ (simple) o 2⁻¹⁰²² (doble) con menos precisión. Llenan el hueco entre el menor número normal y el cero (desbordamiento gradual hacia abajo).
¿Cuántos dígitos decimales son exactos?
Unos 7 dígitos significativos en precisión simple (24 bits × log₁₀2 ≈ 7.2) y entre 15 y 16 en doble (53 bits ≈ 15.95). Imprimir 9 dígitos (simple) o 17 (doble) basta para recuperar exactamente cualquier valor guardado.
¿Cómo se codifican el infinito y NaN?
Un campo de exponente todo en unos con fracción cero es ±infinito (por ejemplo 0x7F800000); todo en unos con fracción distinta de cero es NaN (“no es un número”, por ejemplo 0x7FC00000). Aparecen por desbordamiento, división entre cero u operaciones inválidas como 0/0.
Calculadoras relacionadas
Esta calculadora tiene fines informativos. Verifica los resultados importantes antes de tomar decisiones.