一、在位计算之前,我先讲一下原码、反码和补码。
计算机字节长是8位, 而我们正常是显示一个10进制数3:
0000 0011
这是一个正数, 如果是负数的话, 在最高位进行标记,如果正数为0, 负数为1
3 = 0000 0011
-3 = 1000 0011
如果要计算两个数和时:
3 + 3 = 0000 0011 + 0000 0011 = 0000 0110 = 6
但是要计算两个数相减时:
3 - 3 = 3 + (-3)= 0000 0011 + 1000 0011 = 1000 0110 = -6
很明显这是错误的计算, 于是出现了反码, 其规则是:
1、正数的反码是其本身
2、负数的反码, 符号位不变其余取反
例子
3 = 0000 0011 = 0000 0011(取反)
-3 = 1000 0011 = 1111 1100