1.原码是一个数的(符号位+其余位的绝对值) 比如 1的八位二进制数原码是 0000 0001 ,-1的八位二进制数原码则是 1000 0001 【1 + 000 0001】
2.正数的反码和原码相同,负数的反码是原码符号位不变,其余位取反。 比如 1的原码是0000 0001 ,则1的反码也是0000 0001。
-1的原码是 1000 0001,反码是1 111 1110。即【1 + (000 0001 | 0)】
3.正数的原码,反码,补码,都相同。负数的补码是其符号位不变,其余位取反,得出的结果再加1.
即,-1的补码是 1 111 1111 【1 + (000 0001 | 0) + 0000 0001】
练习:
正数127的原码是 0111 1111,反码是 0111 1111 ,补码是 0111 1111.
负数-127的原码是 1111 1111,反码是 1000 0000,补码是 1000 0001.
负数-128 没有原码,也没有反码,因为八位二进制最高只能表达到-127~127,但是-128有补码,是 1000 0000。因为计算机中都是用补码表示的,所以能够存在-128