2025-11-08 05:36:40
8位二进制补码能表示-128是因为它用了符号位加数值位的规则。最高位1代表负数,剩下7位表示绝对值。比如10000000这个二进制数,1是符号位,后面7个0表示0到127的数值,但因为是负数,所以实际是-128。这样设计既节省空间又能覆盖更多负数。
具体来说,8位二进制补码的最小值是10000000。因为最高位1是符号位,剩下的7位最大能表示127(01111111),所以符号位1对应的数值就是-128。比如01111111是+127,取反加1变成10000000就是-128。这样计算的话:127的补码是10000000,所以-128正好对应这个值。补码通过取反加1的规则,让负数也能用连续的数值表示,不会浪费空间。比如-1是11111111,-2是11111110,一直到-128是10000000,每个负数都比前一个数少1,中间没有空缺。这样设计的话,8位就能表示-128到+127共256个不同的数值,刚好是2的8次方。
本题链接: