2025-11-20 06:29:22
127的补码是01111111,-127的补码是10000001。正数补码等于原数二进制,负数补码用模数减绝对值。比如8位二进制里,127二进制是01111111,-127先算127的补码再取反加1,结果就是10000001。
为什么-127的补码是10000001呢?因为补码计算分三步走:首先正数补码就是原数,负数补码先算绝对值二进制,再取反加1。比如127是01111111,取反变成10000000,加1变成10000001。这里用8位二进制算,模数是256,所以-127等于256-127=129,129二进制正好是10000001。这样正负数在同一个二进制里就能区分,运算也更方便。比如127+(-127)二进制相加是01111111+10000001,计算后得到10000000,去掉进位就是00000000,正好符合数学结果0。数据验证时发现,如果位数不够比如用7位,127会变成0111111,-127变成1000001,但这样最高位冲突会导致错误,所以必须保证位数一致。
本题链接: