源码
将最高位表示符号位0正1负其余代表数值本身的绝对值
+7 源码00000111
-7 源码10000111
问题
+0源码 00000000
——0源码 10000000
表示方式不唯一,所以计算机中不采用这种方式
反码
一个数为正。则它的反码与源码相同;一个数为负。则符号位为1。其余都是对源码取反
+7 反码 00000111
——7 反码 11111000
问题
+0 反码 00000000
——0 反码 11111111
计算机中也不采用这种方式
补码
利用溢出,我门可以将减法变成加法。
对于10进制 9-4=5
因为4+6=10
我们将6作为4的补数。将上面的减法变成加法
9+6=15
去掉高位1 得到5
一个字节表示一个数1个字节有8位超过就进1
一个数为正源码。反码。补码相同。一个数为负。则符号位为1。其余各位对源码取反。然后整个数加1。
+7 00000111
——7 11111000
11111001
+0 00000000
_0 11111111 加1
100000000 丢弃最高位
00000000