想一想我们在十进制中如何计算一个正数乘以一个负数?
举例
17 * (-114) = ?
先计算17 * 114 = 1938
然后在1938前面加一个负号变成 -1938
仔细看,我们在计算时是计算两个正数相乘,最后把两个正数相乘的结果取反
在二进制中同样如此
0001 0001 17
1000 1110 -114
1111 1000 0110 1110 -1938
1000 1110 -114
0111 0010 114
00000000
000100010
0000000000
00000000000
000100010000
0001000100000
00010001000000
000000000000000
000011110010010
0000 0111 1001 0010 1938
1111 1000 0110 1110 -1938
1000 1110 是 -114
0111 0010 是 114
114 * 17 = 1938
0111 0010 * 0001 0001 = 0000 0111 1001 0010
0000 0111 1001 0010 是 1938
把0000 0111 1001 0010变成负数
1111 1000 0110 1110 是 -1938
|