整数在我们输入时在计算机会转成二级制的原码,例如我输入(int类型)9,在计算机的原码便是00000000 00000000 00000000 00000101(中间的空格只是便于观察)
但是整数的保存在计算机中存储的是补码,是由原码变换成反码再变换过来的。
在这里会有不同的变换规则:
对于的整数而言:1.如果是正数,则他的原码,反码,补码相同。
2.如果是负数,则他的反码就是最高位不变(有符号整数而言最高位是符号位,正数是0,负数是1)其他位将0变为1,将1变为0。反码变成补码就是反码+1。
举例 :-1的原码10000000 00000000 00000000 00000001
反码11111111 11111111 11111111 11111110
补码11111111 11111111 11111111 11111111
对于负数而言从补码到原码的方式有两种。
1.就是我们先减1,然后再取反。2.直接取反加1,取反的规则和刚才一样。