2013-07-14 40 views
0

请帮助我使用下面的二进制补码乘法逻辑。两位补码形式的乘法运算

     Actual  cropped 

无符号5 [101] 3 [011] 15 [001111] 7 [111]

Two的排版。 -3 [011] -9 [110111] -1 [111]

我无法理解,当两者的位相同时,无符号和二进制补码乘法的实际乘法是不同的。

回答

0

有符号和无符号整数的乘法是由不同的规则执行的(例如不同于加法和减法)。

相同的位可以表示不同的数据,实际的解释取决于类型。

+0

但是你能解释一下-3(101)和3(011)乘法是如何工作的吗 –

+0

我不会描述它是如何在现代CPU中实现的,但是这个方案如下:乘法是在操作数的绝对值和结果的符号分开计算。因此,abs(-3)* abs(3)= 3 * 3 = 9被执行,并且结果的符号然后被反转,因为其中一个操作数是负的,另一个不是。这仅适用于已签名的操作数。无符号乘法不计算'绝对'值。 – Inspired

+0

好吧,我知道了,谢谢 –