计算机如何实现浮点运算?

2025-07-29

本文基于 IEEE754 标准,介绍计算机实现 FP32(32 位浮点数)加法、乘法运算的过程。

IEEE754标准

在 IEEE754 标准下,32 个比特位被拆分为 符号位(1bit)、指数位(8bit)、小数位(23bit) 三个部分。比如:

0 1 0 0 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 0 1 0 0 1 1 1 0 0 0 0 1 0
符号位 指数位 指数位 指数位 指数位 指数位 指数位 指数位 指数位 小数位 小数位 小数位 小数位 小数位 小数位 小数位 小数位 小数位 小数位 小数位 小数位 小数位 小数位 小数位 小数位 小数位 小数位 小数位 小数位 小数位 小数位 小数位

上例中,

  • 符号位sign 为 0
  • 指数位exponent 为 10010011,指数位的范围为(00000001 ~ 11111110),其中 00000000 代表非规格化数、11111111 代表无穷大。
  • 小数位fraction 为 00111000010100111000010
    表示的浮点数为 \((-1)^{sign} * 2 ^{exponent - 127} * (1 + \frac{fraction}{2^{23}})\)

    双符号位判决法