📜  浮点数相乘

📅  最后修改于: 2021-09-16 10:35:27             🧑  作者: Mango

先决条件 – IEEE 标准 754 浮点数
问题:-
在这里,我们讨论了将两个浮点数 x 和 y 相乘的算法。

算法:-

  1. 以科学记数法转换这些数字,以便我们可以明确表示隐藏的 1。
  2. 让’a’ 是x 的指数,’b’ 是y 的指数。
  3. 假设结果指数 c = a+b。可以在下一步后进行调整。
  4. 将 x 的尾数乘以 y 的尾数。称这个结果为 m。
  5. 如果 m 的小数点左侧没有单个 1,则调整小数点使其如此,并调整指数 c 以进行补偿。
  6. 添加符号位,mod 2,以获得结果乘法的符号。
  7. 转换回一字节浮点表示,如果需要截断位。

笔记 :
负值在浮点乘法中很容易处理。将符号位视为 1 位无符号二进制,加上 mod 2。这与对符号位进行异或相同。

例子 :-
假设您想将以下两个数字相乘:

现在,这些是根据上述算法的步骤:

  1. 给定,A = 1.11 x 2^0 和 B = 1.01 x 2^2
  2. 因此,指数 c = a + b = 0 + 2 = 2 是结果指数。
  3. 现在,将 1.11 乘以 1.01,结果将是 10.0011
  4. 我们需要将 10.0011 归一化为 1.00011 并适当地将指数 1 调整为 3。
  5. 结果符号位 0 (XOR) 0 = 0,表示正。
  6. 现在,将其截断并标准化为 1.00011 x 2^3 到 1.000 x 2^3。

因此,结果数是,

同样,我们可以乘以其他浮点数。