¿Cuál es el primer entero que un flotador IEEE 754 es incapaz de representar exactamente?

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 2bits_de_mantissa y sumando 1, dondebits_de_mantissa es cuántos bits expone el estándar. Hice esto para flotadores de 32 bits en mi máquina (MSVC ++, Win64), aunque parecía estar bien.

Respuestas a la pregunta(2)

Su respuesta a la pregunta