floating-point - 它是 52 位还是 53 位浮点精度?

标签 floating-point ieee-754 floating-point-precision

我一直在 64 位 IEEE 浮点表示中看到这种关于 53 位精度的废话。有人可以向我解释一下,在世界上,一个被 1 卡住的位如何对数字精度做出任何贡献?如果您有一个浮点单元,bit0 固定为 1,您当然会知道它产生的精度比正常情况低 1 位。对这件事的敏感度在哪里?

此外,只有指数,没有尾数的缩放因子,完全指定了数字的前导位在哪里,所以从来没有使用过前导位。第 53 位与第 19 洞一样真实。它只是一个(有用的)拐杖来帮助人类的思想和以二进制形式访问这些值的逻辑。否则声称是重复计算。

要么所有声称这第 53 位废话的书籍和文章都是错误的,要么我就是个白痴。但是卡住的位是卡住的位。让我们听听相反的论点。

最佳答案

IEEE-754 64 位二进制浮点对象的数学有效数 1 有 53 位。它使用专门用于有效数的 52 位字段和来自指数字段的一些信息(指示第 53 位是 0 还是 1)的组合进行编码。

由于主要的有效位字段是52位,所以有人将有效位称为52位,但这是一个草率的术语。有效位字段不包含有效位的所有信息,完整的有效位为53位。

有效数的前导位从不使用(作为 1 以外的任何其他值)是不正确的。当指数的编码为零时,有效数的前导位是 0 而不是更频繁的 1。

1 “有效数”是首选术语,而不是“尾数”。有效数是线性的,尾数是对数的。

关于floating-point - 它是 52 位还是 53 位浮点精度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18409496/

相关文章:

C# 将 int 转换为浮点抛出异常(在运行时)

database - 在 postgresql 中限制 double 或 float8 类型的小数位数

floating-point - 计算算术均值时,哪种求和方式更精确?

python - Numpy 求和函数返回 1.67772e+07

c++ - Linux 中的可执行文件会影响链接动态库中的浮点精度吗?

c - 在 C 中使用位运算对 float 进行向下舍入

c++ - 打印出 float 的内六角

C# 相当于 IEEE 754 余数 ()?

c# - 这是占一定小数位数的有效 float 比较吗?

cocoa - 文件大小问题 - Cocoa