梗概
注意
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左边的数字按位求反。
实际问题
- child::补码溢出判断与处理