gpt4 book ai didi

floating-point - 不能用单精度浮点表示的最小整数

转载 作者:行者123 更新时间:2023-12-05 02:22:49 31 4
gpt4 key购买 nike

所以我知道不能用单精度 float 表示的最小正整数是 2^(23+1) + 1 = 16,777,217。

我们怎么知道我们使用 2^(23+1) + 1。我知道有一个隐含的 1,以及 23 是尾数中表示的位数,但为什么这样做有效?

最佳答案

我认为这里的技巧是理解浮点表示的基础:每个数字表示为 1.fraction * 2^exponent。这里的关键是要知道指数(8 位)和分数(23 位)都有限制,但这些限制不一定匹配。例如,我们可以用 8 位指数创建 2^24,而我们不能用分数创建 2^-24(因为它只有 23 位)。因此,如果你想让数字 16777216 = 2^24,你只需将分数设置为 0 并将指数设置为表示 24。但是,如果你想表示 16777217 = 2^24 + 1,你唯一能做的就是就是加上一个小分数,所以当它与 2^24 相乘时,它会产生 1,而那个小分数应该是 2^-24,不幸的是,它不能仅由 23 位数字产生。

关于floating-point - 不能用单精度浮点表示的最小整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27207149/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com