原码:将最高位作为符号位(0表示正,1表示负),其它数字位代表数值本身的绝对值的数字表示方式。
反码:如果是正数,则表示方法和原码一样;如果是负数,符号位不变,其余各位取反,则得到这个数字的反码表示形式。
补码:如果是正数,则表示方法和原码一样;如果是负数,则将数字的反码加上1(相当于将原码数值位取反然后在最低位加1)。
如:14=2+4+8 因此其反码,补码,原码都为00001110;
又如:-21: 原码:10010101
反码:11101010
补码:11101011
14+(-21)在内存中是这样进行运算的
00001110
+ 11101011
——————
11111001——>补码
因为他是补码,所以我们要把它转化为原码
11111000——>反码
10000111——>原码
根据二进制算法得出10000111表示的是-7,符合14-21=-7