
哪位大神能帮我解释一下8位补码可表示的整数范围是–128到127,多谢多谢
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
下面一步步的说明:
最高位符号位,故后面还有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
更多追问追答
追问
–128应该是110000000
吗?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询