原码,反码,补码
前提1:有符号数第一位数代表符号,0为正数,1为负数。
前提2:正数的原码,反码,补码均相等,负数的原码除符号位按位取反得到反码,按位取反加一得到补码。
原码情况下:八位有符号二进制数表示范围为-2^7-1到2^7-1,0有两个原码,但是只有一个补码。
补码情况下:八位有符号二进制数表示范围为-2^7到2^7-1,为什么负数会比正数多一个数呢,这是因为00000000代表0,而0的补码是唯一的,10000000不能代表0,0没有正负,而10000000又是负数,所以只能代表-2^7,而不是正2^7。
无符号数到0继续减-1会导致溢出,出现2147463647这种形式的正数。

浙公网安备 33010602011771号