正数的原码反码和补码相同。
负数的反码等于原码除符号位外各位都取反。负数的补码等于反码加1。
在计算机中负数用补码表示。
为什么负数用补码表示?
总结:补码的存在解决了0的符号问题,同时统一了计算机的加减法运算。
(1)原码是方便人看的,计算机做减法需要借位,实现很不方便。
(2)如果把原码相减,变成反码相加,计算机实现就很容易。但是+0和-0的反码不一样,遇到0时是用+0还是-0计算,就会产生分歧。
(3)如果使用补码,+0和-0的补码是一样的,都为全0。而1000 0000就用来表示-128的补码,因为-127的补码和-1的补码相加,和为1000 0000。
参考资料:原码、反码和补码