二进制的首位表示符号,0表示正数,1表示负数,从右向左依次进行二进制运算,一个字节有八个比特位,七个用来运算。
这三者其实就是计算机语言在解决运算过程中不断演化出来的更好的二进制形式。
原码只能正确运算正数;反码可以分别计算整数和负数,但是一旦跨0就无法正确计算;补码解决了上述问题,不论是正数负数还是跨0都能正确运算。
原码:运算负数时,符号固定,—1+1=—2。10000001+00000001=10000010.
反码:运算时,符号位不变,其他位与原码取相反,0变1,1变0,但是0有两个表示方式,11111111和00000000,导致—0+1=0,跨0计算出错。
补码:将0的表示方式只设置为00000000,—1取11111111,即在原码和反码的所有数向下错一位,多出了—128这个数(10000000)。