| 
 | 
 
 
发表于 2019-1-26 16:35:28
|
显示全部楼层
 
 
 
想一想我们在十进制中如何计算一个正数乘以一个负数? 
举例 
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 
 |   
 
 
 
 |