명확하게하기 위해 IEE 754 수레를 구현하는 언어를 사용하는 경우 다음을 선언합니다.
float f0 = 0.f;
float f1 = 1.f;
... 그런 다음 다시 인쇄하면 0.0000과 1.0000이 표시됩니다.
그러나 IEEE 754는 실제 라인을 따라 모든 숫자를 나타낼 수 없습니다. 0에 가까워지면 '갭'이 작습니다. 멀어 질수록 간격이 더 커집니다.
내 질문은 : IEEE 754 float의 경우 정확히 표현할 수없는 첫 번째 (0에 가장 가까운) 정수입니까? 지금은 32 비트 플로트에만 관심이 있지만 누군가가 64 비트에 대한 대답을 듣는 데 관심이 있습니다!
나는 이것이 bits_of_mantissa 를 계산 하고 1을 추가하는 것만 큼 간단하다고 생각했다 . 여기서 bits_of_mantissa 는 표준이 노출하는 비트 수이다. 내 컴퓨터 (MSVC ++, Win64)에서 32 비트 플로트에 대해이 작업을 수행했지만 정상적으로 보였습니다.