我对使用带二进制补码的二进制乘法在以下问题中出错的地方感到困惑。
我正在尝试乘以12 * -6
。
我们知道12 = 01100
和-6 = 11010
,并且签名扩展我们得到00000 01100 * 11111 11010
。我尝试将这两个数字相乘如下:
1111111010
x 0000001100
------------
0000000000
0000000000
1111111010
+ 1111111010
---------------
10111110111000
这绝对不是-72
,所以我做错了什么?
答案 0 :(得分:1)
从左侧删除不适合数据类型的数字:
10111110111000
截断为
1110111000
你会发现这确实是-72
。