8位补码表示的整数范围?重点给我详细讲下-128是如何得到的!

1个回答

  • 你的意思是最高位表示符号位吧,也即有符号的8位二进制数的补码问题.

    下面一步步的说明:

    最高位符号位,故后面还有7位,正数时原码和补码相同,故此时的

    0表示为0000 0000;

    1表示为0000 0001;

    依次类推...

    0111 1111即表示+(64+32+16+8+4+2+1)=+127

    负数时最高位为1,负数的补码为对应的原码部分取反加1,故有:

    -1即1000 0001取反后为1111 1110 再加1得补码为1111 1111;

    -2即1000 0010(理解为-1的数字位加了1成了10)取反后为1111 1101再加1得补码为1111 1110;

    依次类推...

    -127即1111 1111取反即1000 0000再加1得补码为1000 0001

    -128即1000 0000(同理可以理解为数字位加1成了000 0000)取反后为1111 1111再加1得补码1000 0000

    看以上的结果,从0000 0000到1000 0000再到1111 1111全部的8位已经组合完毕,不能再有其他情况出现了,故只能表示-128~+127