Para maior clareza, se estou usando uma linguagem que implementa IEE 754 floats e declaro:
float f0 = 0.f;
float f1 = 1.f;
... e depois imprimi-los novamente, receberei 0,0000 e 1,0000 - exatamente.
Mas o IEEE 754 não é capaz de representar todos os números ao longo da linha real. Perto de zero, as 'lacunas' são pequenas; à medida que você se afasta, as lacunas aumentam.
Então, minha pergunta é: para um flutuador IEEE 754, que é o primeiro inteiro (mais próximo de zero) que não pode ser representado exatamente? Por enquanto, só estou realmente preocupado com flutuadores de 32 bits, embora eu esteja interessado em ouvir a resposta de 64 bits, se alguém der!
Eu pensei que isso seria tão simples quanto calcular 2 bits_de_mantissa e adicionar 1, onde bits_of_mantissa é quantos bits o padrão expõe. Eu fiz isso para carros alegóricos de 32 bits na minha máquina (MSVC ++, Win64), e parecia bom.