我正在试着找出一个关于测量压力的问题的答案。这些度量应该以二进制浮点格式存储,我的任务是在一些约束条件下确定这样做所需的最小位数;
最大压力为1e+07页
最小压力为10 Pa
测量准确度为0.001 %
所以如果我理解正确的话,我可能会碰巧
1e+07 + 0.00001 * 1e+07 = 10000100页
并且想要精确地存储它。这意味着我需要24位,因为
2^23< 10000100 <2^24-1。
这包括负号的1位吗?既然我们不测量负压,那么更准确的答案是23位吗?
对于最小的压强,我可以恰好测量9.9999 Pa,并且想要正确地存储,所以4个小数。因为我可以做同样类型的计算,最后得到
2^13<9999<2^14-1
这在我首先选择的23-24位中已经涵盖了吗?
我对此非常陌生,因此任何帮助或只是澄清将不胜感激。
发布于 2018-02-13 23:15:57
除非你问这个问题是为了(i.)学术兴趣或(Ii)我强烈建议您不要担心位数,而是使用标准的浮点型(4字节)或双精度型(8字节)。数据库和软件包了解浮点数和双精度数。如果您尝试使用最少的位数来制作自己的浮点格式,那么您将为自己添加大量的工作。
一个浮点型将包含7个有效数字,而双精度型将包含16个有效数字。如果您想获得技术支持,则一个浮点型(单精度)使用8位作为指数,1位用于符号,其余23位用于有效数,而双精度(双精度)使用11位用于指数,1位用于符号,52位用于有效数。
所以我建议你把注意力放在浮点数还是双精度数最能满足你的需求上。
我知道这不能回答你的问题,但我希望它能满足你的需要。
https://stackoverflow.com/questions/48769477
复制相似问题