【发布时间】:2014-02-14 14:32:50
【问题描述】:
我遇到了这个问题,我必须解决我必须乘以浮点数(16 位)的位置,但我无法仔细检查它。非常感谢任何帮助。
浮点A:0 11000 0111000000 浮点B:0 11010 1011000000
我计算指数:
答:24-15=9 B:26-15=11
计算尾数(a & b):
(2^9*b) * (2^11*b) = 2^9+11 * (a*b) + 2^20 * (a*b)
溢出,所以我将 A 的指数增加到与 B(11) 一样。
然后我按照计算移动A的尾数:
1.0111 > 0.10111 > 0.010111。
然后我乘以得到尾数。
0.010111
* 1.101100
0000000
0000000
0010111
0010111
0000000
0010111
0010111_____
0.100110110100
我又换档了。
0.100110110100
指数减1,所以是10。
符号为0,所以是正数。
答案:0 01010 00110110100。
对吗?
提前致谢!
【问题讨论】:
-
从
(2^9*b) * (2^11*b) = 2^9+11 * (a*b) + 2^20 * (a*b)行无法理解您在做什么。您不需要均衡指数以进行乘法:这是您为对齐 addition 和 subtraction 的有效数字所做的工作。 -
在进行此类工作时,我强烈建议获取或编写一个从浮点格式到十进制数的转换器。它使检查变得更加容易。
标签: math floating-point binary multiplication ieee-754