我试图找出一个关于测量压力的问题的答案。 测量结果应该以二进制浮点格式存储,我的任务是确定使用某些约束条件所需的最小位数;
最大压力为1e + 07 Pa
最小压力为10 Pa
测量的准确度为0.001%
所以,如果我理解正确的话,我可能会碰巧使用
1e + 07 + 0.00001 * 1e + 07 = 10000100 Pa
并希望准确存储它。这意味着我需要24位,因为
2 ^ 23℃; 10000100< 2 ^ 24-1。
这包括负号的1位吗?既然我们不承担负面压力,那么更准确的答案是23位吗?
而且对于最小的压力,我可能碰巧确保9.9999 Pa,并且想要正确存储,所以4位小数。 因为我可以进行相同类型的计算并最终得到
2 ^ 13< 9999&2 ^ 14-1
这是否已经包含在我首先选择的23-24位中?
我对此非常陌生,所以任何帮助或只是澄清都会受到赞赏。
答案 0 :(得分:0)
除非你问这个问题是为了(i。)学术兴趣或(ii。)存储真的很短 - 我不打算解决这个问题 - 我强烈主张你不要担心比特数,而是使用标准浮点数(4个字节)或双重(8个字节)。数据库和软件包了解浮点数和双精度数。如果您尝试使用最少的位数来创建自己的浮点格式,那么您将为自己添加大量工作。
一个浮点数将保持7位有效数字,而一个双精度数将保持16.如果你想得到技术浮点数(单精度)使用8位作为指数,1位用于符号,其余23位用于有效数字虽然双精度(双精度)使用11位作为指数,1位表示符号,52位表示有效数。
因此,我建议您关注浮动或双重最佳是否符合您的需求。
我知道这并没有回答你的问题,但我希望它能满足你的需求。