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


IEEE 制定了 IEEE 754 浮点数标准。该标准定义了一组格式和操作模式。所有符合此标准的计算机都将始终为相同的计算计算出相同的结果。此标准未指定用于执行计算的算术程序和硬件。例如,CPU 无论是使用移位加法硬件还是 Wallace 树来相乘两个有效数字,都可以满足该标准。

IEEE 754 标准指定了浮点数的两种精度。单精度数有 32 位——1 位用于符号位,8 位用于指数,23 位用于尾数。尾数还包括在其基数点左侧隐含的 1。

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

双精度数使用 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
100 0000 0011
000000 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
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 规范的处理器设置为使用不同的舍入方法,则它们可能会对相同的计算产生略微不同的结果。

更新于:2021年7月27日

11K+ 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始
广告