原码,反码,补码是针对一个有符号数的不同表示方法。有些书上用的公式看的都头大,这里我总结一下。
原码,反码,补码换算成有符号整数他们的值是一样的。
拿两个数来进行推算:7, -7
7的原码: 0 1 1 1 (第一位是符号位, 后几位是 1*2^2+1*2^1+1*2^0) 注: 2^x 即2的x方。例如2^2 就是2的平方
7的反码: 0 1 1 1 (正数的反码和原码是一致的。0*(2^3-1)+1*2^2+1*2^1+1*2^0)
7的补码: 0 1 1 1 (正数的补码和原码是一致的。0*2^3+1*2^2+1*2^1+1*2^0)
-7的原码: 1 1 1 1 (第一位是符号位,后几位是 1*2^2+1*2^1+1*2^0)
-7的反码: 1 0 0 0 (对原码的符号位不变,其它位取反 ,计算是按照: -1*(2^3-1)+0*2^2+0*2^1+0*2^0)
-7的补码: 1 0 0 1 (对被码再加一个1,计算是按照 -1*(2^3)+0*2^2+0*2^1+1*2^0)