解释一下计算机体系结构中的 IEEE 标准 754 浮点数?

computer architecturecomputer sciencenetwork更新于 2026/1/12 5:52:17

IEEE 制定了 IEEE 754 浮点标准。该标准定义了一系列格式和操作模式。所有符合该标准的计算机对于相同的计算都会得出相同的结果。该标准并未指定用于执行计算的算术程序和硬件。例如,无论 CPU 使用移位加法硬件还是使用华莱士树进行两位有效数字相乘,它都可以满足该标准。

IEEE 754 标准为浮点数指定了两种精度。单精度数的符号位为 32 位(-1),指数位为 8 位,有效数字为 23 位。有效数字的小数点左侧也隐含一个 1。

表 (a) 显示了 +19.5(二进制 = 10011.1 或 1.00111 x 24)的单精度格式表示。有效数字中不包含前导 1,在本标准中,它的存在是隐含的。指数 4 表示为 1000 0011 或 131,这是由于添加了 127 的偏差。

双精度数使用 64 位 -1 作为符号位,11 位作为指数位,52 位作为有效数字。与单精度数一样,大多数值的有效数字都隐含一个前导 1。指数的偏差为 1023,范围为 -1022 到 +1023。最小和最大指数值 -1023 和 +1024 保留用于特殊数字。表 (b) 显示了双精度格式的 +19.5 的表示。对于此值,指数存储为 4 + 偏差,即 4 + 1023 = 1027。

IEEE 754 标准格式的单精度 (a) 和双精度 (b) 表示

值符号尾数指数
+19.50001 1100 0000 0000 0000 00001000 0011
00000 0000 0000 0000 0000 00000000 0000
±∞0 或 1000 0000 0000 0000 0000 00001111 1111
Nan0 或 1任何非零值1111 1111
非规范化0 或 1任何非零值0000 0000

(a)

值符号尾数指数
+19.500011 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
100 0000 0011
000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
000 0000 0000
±∞0 或 10000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
111 1111 1111
Nan0 或 1任何非零值111 1111 1111
非规范化0 或 1任何非零值000 0000 0000

零、±∞ 和 Nan 在单精度和双精度格式中都有预定义的表示形式。值 0 的有效数字等于 0,指数所有位都设置为 0。无穷大的有效数字也等于 0,但其指数所有位都设置为 1。符号位表示值为±∞ 或±∞。如果指数全为 1,且尾数不为零,则表示值为 Nan。

IEEE 754 标准要求向最接近数舍入为默认舍入方法,并且其他方法可供用户选择。因此,如果两个符合 IEEE 754 规范的处理器设置为使用不同的舍入方法,则它们在执行同一计算时可能会产生略有不同的结果。


相关文章