哪个是IEEE 754浮点数无法准确表示的第一个整数?

哪个是IEEE 754浮点数无法准确表示的第一个整数?

为了清楚起见,如果我使用的是一种实现IEE 754浮点数的语言,并且声明:

float f0 = 0.f;
float f1 = 1.f;

.然后把它们打印出来,我会得到0.0000和1.0000-完全正确.

但是IEEE 754并不能代表所有真实的数字。接近于零,“差距”很小;当你离得越远,差距就越大。

所以,我的问题是:对于IEEE 754浮点数,哪个是第一个(最接近于零的)整数,不能精确表示?我现在只关心32位浮点数,不过如果有人给我64位的答案,我会感兴趣的!

我以为这和计算2一样简单尾数位加上1,其中尾数位标准公开了多少位。我这样做的32位浮动在我的机器(MSVC+,Win 64),但似乎不错。


蛊毒传说
浏览 790回答 2
2回答

元芳怎么了

2尾数位+1 + 1指数(尾数位+1)中的+1是因为,如果尾数包含abcdef...它所代表的数字实际上是1.abcdef... × 2^e,提供额外的隐式精度。为float,是16,777,217(224 + 1).为double,为9,007,199,254,740,993(253 + 1).>>> 9007199254740993.0 9007199254740992

慕码人2483693

类表示的最大值。n位整数为2n-1。如上所述,afloat在意义上有24位的精度,这似乎意味着24不合身。不过.指数范围内的2的幂可精确表示为1.0×2n,SO224 能,会,可以的第一个不可表示的整数float是224+1.如上所述。再来一次。
打开App,查看更多内容
随时随地看视频慕课网APP