梗概

注意

  • 注意符号位也参与运算。
  • 注意补码表示范围下届是不能根据反码计算过来,
    • 因为其在反码中不能表示,所以人为规定直接拿无意义的1000 0000来表示这个补码

1. 补码符号位也参与运算:

补码最高位虽然只是用来表示正数和负数,但是也参与运算,因为其刚好与数学正负数运算可以很好的配合。

2. 1Byte补码表示范围:

[-128~127],共256个数

使用补码的原因:

使用原码就不能实现7+(-5)这种基本的数学运算
而补码就可以实现
且补码的变化规律与数学上的一致
所以补码更为合适

补码的规律:

补码数值位的大小变化关系刚好与数学吻合,即都是递增的
-128的补码不能计算得来,而是人为规定的1000 0000
-127的补码为1000 0001
-126的补码为1000 0010
…依次加一
一直加到127
+127的补码为0111 1111

快速求补码

对于负数的补码 对原码从右往左数,直到遇到第一个数字1,1及1右边的数不变,1左边的数字按位求反。

实际问题