ali*_*der 4 floating-point double significant-digits ieee-754 floating-point-conversion
对于维基百科,binary32格式具有6到9个有效十进制数字精度,64格式具有15到17.
我发现这些有效的十进制数字是使用尾数计算出来的,但我没有得到它如何计算它?任何的想法 ?
32位格式的尾数= 24位,64位格式的尾数= 53位
首先,对于这个问题,最好使用总有效数字大小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是保证通过二进制32往返的十进制数字的数字,9是需要保留的十进制数字的数字,以通过十进制对二进制32的数字进行往返,依此类推.
Exploring Binary博客的作者目前正在写一篇关于往返的系列文章.如果您对log2(10)= 3.32解释不满意,那么本系列就是您应该阅读的内容.