根据维基百科,binary32格式具有从6到9的显着小数位精度,64格式从15到17.。
我发现这些重要的十进制数字是用尾数计算的,但我没有得到,怎么计算呢?知道吗?
尾数为32位格式=24位,尾数为64位格式=53位
发布于 2015-05-15 14:36:07
首先,对于这个问题,最好使用总意义和大小24和53。前导位没有表示的事实只是编码的一个方面。
如果您只对一个模糊的解释感兴趣,那么每个十进制数字都确切地包含了log2(10) (约3.32)位信息。当你必须对一个数字进行编码时,你需要4位,但是这里我们要讨论的是高效地编码几个连续的十进制数字,所以3.32的数字就可以了。
53位/ log2(10) -> 15.95 (16位十进制数)
24位/ log2(10) -> 7.22 (7位十进制数)
如果您想要正确地这样做,您需要考虑这样一个事实,即不同的数字在二进制和十进制中是可表示的。询问二进制浮点的小数点精度的人通常被认为是指可以来回遍历二进制格式并返回相同位置的十进制精度,或者是通过小数点到相同值来回往返二进制浮点数所必需的十进制精度,因为这些是最合理的解释。因此范围为“6…”9“和”15…17“。6是保证通过binary32往返的小数位数,9是往返小数点所需保留的小数位数,binary32数是小数点数,等等。
博客探索二进制的作者目前是在双程旅行中写一个系列。如果您对log2(10)=3.32解释不满意,那么接下来应该阅读本系列文章。
https://stackoverflow.com/questions/30261096
复制相似问题