首页 > 解决方案 > 如何对 IEEE754 中表示的浮点数执行乘法运算

问题描述

给定一个浮点数M在 IEEE754 中表示为
0 10000000 01010101010101010101010

如何计算Round(Mx20)的结果?

我知道如何将M转换为标准化形式,
M = 1.01010101010101010101010(base 2) x 2^1

但是我不知道如何有效地手动进行乘法M x 20,因为尾数中有很多数字。
任何提示表示赞赏!

标签: floating-pointieee-754

解决方案


前进的道路是标准的长乘法方法,但以 2 为底:

1.01010101010101010101010101010101010 = 1 ×20 = 1.0101010101010101010101010101011 2 2 1 × 5 • 4 = 1.0101010101010101010101010101010101011 2 2 1 × 5 • 2 2 = 1.010101010101010101010101010101010101010101010101010101010101010101010101010111111111110110102


    1.01010101010101010101010 2 • 2 1 
                          101 2 • 2 2
× _________________________________
    1.01010101010101010101010 2 • 2 3 
   00.00000000000000000000000 2 • 2 3 
  101.01010101010101010101000 2 • 2 3
+ _________________________________
  110.10101010101010101010010 2 • 2 3

然后我们要将有效位四舍五入为 24 位,以粗体显示:110.1010101010101010101 0010 2 • 2 3

所以结果是 110.1010101010101010101 2 • 2 3或 1.1010101010101010101010010 2 • 2 5


推荐阅读