【问题标题】:Calculate the order of precision limit of floating type representation [duplicate]计算浮点类型表示的精度限制的顺序[重复]
【发布时间】:2022-01-15 04:45:02
【问题描述】:

假设我的机器中有一个单精度浮点格式变量,我想将给定操作的结果分配给它。 来自Wikipedia

IEEE 754 标准将 binary32 指定为:

  • 符号位:1 位
  • 指数宽度:8 位
  • 有效位精度:24 位(23 位显式存储)
    这提供了 6 到 9 位有效十进制数字的精度。

我不清楚最后一个声明(e-6 的精度)是如何得出的。 一般来说,给定上面float32float64的数据类型,如何找出以10为底的精度限制?

【问题讨论】:

标签: floating-point precision floating-accuracy representation


【解决方案1】:

基本数学是这样的:你搜索 n 这样

2^24 = 10^n

你可以通过取对数来解决这个问题:

24*log(2)=n*log(10)

以 10 为基数取 log,也就是大约

7.22... = n

大约 7(十进制)位精度。

注意 digitus 在拉丁语中的意思是手指,所以数字自然应该是十进制

【讨论】:

  • 感谢您的回答;但为什么有效位只有 24?换句话说,为什么第一个等式的指数中有 24?如果我理解得很好,这是精度的一种上限,这意味着在最坏的情况下(指数因子等于 1)我们只能依赖剩余 23 位给出的精度。这个推理是真的还是我错过了什么?
  • 隐含的前导 1 仍然是数字的一部分,该数字由一组 24 位定义(零和逐渐下溢除外)。用十进制表示你有 7.85,它仍然是一个 3 位数的数字,对于二进制 1.01,它仍然是 3 位。
猜你喜欢
  • 1970-01-01
  • 2020-12-17
  • 1970-01-01
  • 2014-03-12
  • 2021-11-11
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多