2013-07-14 45 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

好吧,我知道了,謝謝 –