跳转到内容

浮点数/浮点数算术

来自维基教科书,开放世界中的开放书籍

如果我们不能对浮点数进行运算,它们将毫无用处。幸运的是,存在执行基本算术运算(加法、减法、乘法、除法)以及其他运算(如指数、平方根和超越函数)的算法。本页将介绍一些基本的算术运算,更高级的算法将留待后面的页面介绍。

让我们将以下两个数字相乘

变量 符号 指数 小数 X 0 1001 010 Y 0 0111 110

以下是步骤

  1. 首先,将这两个表示形式转换为科学记数法。因此,我们显式地表示隐藏的 1。
  2. 在本例中,X 为 1.01 X 22,Y 为 1.11 X 20。
  3. 令 x 为 X 的指数。令 y 为 Y 的指数。结果指数(称为 z)是两个指数的总和。在下一步之后可能需要调整 z。
  4. 目前,结果指数为 2 + 0 = 2
  5. 将 X 的尾数乘以 Y 的尾数。将此结果称为 m。
  6. 将 1.01 乘以 1.11 结果为 10.0011
  7. 如果 m 不在基点左侧保留一个 1,则调整基点以使其保留一个 1,并调整指数 z 以进行补偿。
  8. 现在,我们必须将 10.0011 重新规范化为 1.00011,并将指数增加 1 到 3
  9. 将符号位相加,模 2,以获得结果乘法的符号。
  10. 符号位为 0 + 0 = 0。
  11. 转换回一个字节的浮点表示,必要时截断位。
  12. 我们需要将 1.00011 x 23 截断为 1.000 x 23 并转换。
Product 	sign 	exponent 	fraction
X * Y 	        0 	  1010 	          000
华夏公益教科书