Floating point 是52位还是53位浮点精度?

Floating point 是52位还是53位浮点精度?,floating-point,ieee-754,floating-point-precision,Floating Point,Ieee 754,Floating Point Precision,我一直看到64位IEEE浮点表示法中53位精度的胡说八道。有人能给我解释一下,在这个世界上,一个1是如何影响数字精度的?如果一个浮点单元的位0与1固定在一起,您当然会知道它产生的精度比正常情况下低1位。这些情感在哪里 此外,只有指数(不带尾数的比例因子)完全指定数字的前导位的确切位置,因此不会使用前导位。第53洞与第19洞一样真实。它仅仅是一根(有用的)拐杖,可以帮助人类思维和逻辑以二进制形式访问这些值。否则就等于重复计算 不是所有声称这53位废话的书和文章都错了,就是我是个白痴。但是卡住的一点

我一直看到64位IEEE浮点表示法中53位精度的胡说八道。有人能给我解释一下,在这个世界上,一个1是如何影响数字精度的?如果一个浮点单元的位0与1固定在一起,您当然会知道它产生的精度比正常情况下低1位。这些情感在哪里

此外,只有指数(不带尾数的比例因子)完全指定数字的前导位的确切位置,因此不会使用前导位。第53洞与第19洞一样真实。它仅仅是一根(有用的)拐杖,可以帮助人类思维和逻辑以二进制形式访问这些值。否则就等于重复计算


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

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

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

有效位的前导位从未被使用(与1以外的任何内容一样),这是不正确的。当指数的编码为0时,有效位的前导位为0,而不是更频繁的1


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

这里的关键概念是“规范化”。在一般的科学记数法中,每个值都有许多表示形式。这使得算术,尤其是比较,比必要的更难。常见的解决方案是要求有效位的最高有效位为非零。例如,我使用的第一个浮点系统是base 16,有效位的前导位数在1到F之间

这对二进制浮点有特殊的效果。有效位的最高有效位是非零位。在已知为非零的位上浪费物理表示中有限数量的位是没有意义的

IEEE 754 64位二进制文件中的正常数字具有53位有效位,其隐式前导位已知为1,其余52位存储在物理表示中

没有免费的午餐,这是有代价的。成本是对给定指数下可存储的数字的限制。对于大多数指数来说,这并不重要——数字只是用一个较小的指数存储,并且仍然使用一个不需要存储的前导位

这将是零指数的真正限制,因为没有更小的指数可供使用。IEEE 754二进制浮点通过以不同的方式存储非常小的数量级(指数为零)来解决这一问题。它们最多有52个有效位,全部存储,允许前导零。这使得非常小的数量级可以表示为非零数,但代价是精度降低


无穷大和nan的存储方式不同,都是1的指数。

它并没有被卡住。指数将移动“卡住”位,使其不会被困在固定位置

事实上,隐藏位始终是归一化后的最高有效位。因为它总是在一个规范化的值中设置,所以显式保存它是没有意义的。省略它会稍微提高精度,这是一件好事


因此,我们将存储0.xxx…xxx×2exp,而不是1.xxx…xxx×2exp,并在对其进行操作之前将整数部分设置为1。隐藏位确实会影响结果的值,而不是毫无意义地躺在那里。这与我们将十进制值的范围标准化为[0,1]时是一样的。在这种情况下,整数部分始终为零,可以省略(在某些文化中)。然后,如果E(指数的编码)为零,T(尾随有效位字段),则释放的空间可以用于另一个精度数字不为零,浮点数的值为(–1)**s•2**emin•(0+2**(1-p)•T),其中s为符号位,emin为最小指数(–1022为64位二进制),p为位精度(53为64位二进制,见表3.5)。因此,除零外,还有一些数字的前导位为零(前导位为以上表达式中的“0”。@ChrisCochran:关于“没有下溢的所有值”。值没有下溢;下溢是指在操作过程中,根据某些规则检测到微小的非零结果时发生的情况。您可能指的是“低于正常值的数”然而,次正规数是浮点表示的。另外,考虑64位浮点中相邻可表示值之间的差值与浮点值在同一范围内的53位整数中的相邻可表示值之间的差值相同。在64位FL中给出252个值。起始点,下一个可表示的值是252+1。在53位整数中给定252,下一个可表示的值是252+1。因此,当前导位在浮点中与53位整数的最高有效位在同一位置时,浮点与53位整数具有相同的精度。@Chris:同样,它们是低于正常值的,而不是低于f的低。这些术语具有IEEE 754-2008中定义的精确技术含义。事实上,有效位具有53位自由度,因为在正常情况下,当