Para mayor claridad, si estoy usando un lenguaje que implementa flotadores IEE 754 y declaro:
float f0 = 0.f;
float f1 = 1.f;
... y luego imprimirlos de nuevo, obtendré 0.0000 y 1.0000, exactamente.
Pero IEEE 754 no es capaz de representar todos los números a lo largo de la línea real. Cerca de cero, las 'brechas' son pequeñas; A medida que te alejas, las brechas se hacen más grandes.
Entonces, mi pregunta es: para un flotante IEEE 754, ¿cuál es el primer entero (más cercano a cero) que no puede representarse exactamente? Solo estoy realmente preocupado por los flotantes de 32 bits por ahora, aunque me interesaría escuchar la respuesta de 64 bits si alguien me lo da.
Pensé que esto sería tan simple como calcular 2 bits_de_mantissa y agregar 1, donde bits_de_mantissa es cuántos bits expone el estándar. Hice esto para flotantes de 32 bits en mi máquina (MSVC ++, Win64), y parecía estar bien, sin embargo.