为了账号安全,请及时绑定邮箱和手机立即绑定

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

哪个是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),但似乎不错。
查看完整描述

2 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

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


查看完整回答
反对 回复 2019-06-24
?
慕码人2483693

TA贡献1860条经验 获得超9个赞

类表示的最大值。n位整数为2n-1。如上所述,afloat在意义上有24位的精度,这似乎意味着24不合身。

不过.

指数范围内的2的幂可精确表示为1.0×2n,SO224 能,会,可以的第一个不可表示的整数float是224+1.如上所述。再来一次。

查看完整回答
反对 回复 2019-06-24
  • 2 回答
  • 0 关注
  • 788 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信