问题的背景-specifications of binary32 float

我的问题是关于假设的,即第一个(前导)位始终为1,因此我们不需要存储它。是的,但是它在数量上还有其他作用。.我们知道,它从哪里开始。因此,在提取了第一个非零位之后,我们不知道数字从哪里开始,除非此后还有另一个非零位。

在该Wiki文章中,他们使用数字(1.100011)binary。所以分数是100011,我们可以毫无问题地增加该数字。但是,(1.000011)binary呢?我们提取1,然后剩下000011,由于我们无法在零初始化的位域中存储前导零,所以我们得到11。我们得到1.11,那是错误的。

那么,我们如何自由地提取任意数量的前导位呢?

最佳答案

但是,(1.000011)binary呢?我们提取1,然后剩下000011,由于我们无法在零初始化的位域中存储前导零,因此得到11。


实际上,您确实存储了前导零。存储的是000011,当又添加1时,又回到了开始的位置。存储前导零(在删除了前导1之后)是起作用的。

关于c++ - binary32 float(IEEE)中的前导位,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8449486/

10-11 15:17