二进制补码范围简单总结

本文简要总结8位补码表示的整数范围,从-128到127。补码规则指出,最高位为0表示正数,为1表示负数,通过取反加1计算负数的绝对值。例如,10000000代表-128。8位二进制中,最高位为1的有128种组合,表示128个负数;最高位为0的有128种组合,减去00000000的0,共能表示127个正数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

8位补码范围是 -128至127.
根据补码的几条规定即可推出上述结论:
1 若二进制每位全为0,则表示数0
2 若最高位(即符号位)为0,表示正数
3 若最高位为1, 表示是负数,而该负数的绝对值是多少呢?将每个二进制位(包括符号位)取反加1,得到一个二进制数,将该数看成无符号数,其值就是上述负数的绝对值。

例如,二进制的 10000000 的最高位为1, 所以它表示的是负数。是负的多少呢?我们将其八位全部取反,得到01111111, 然后加1,得到10000000. 将该数看作无符号数,值为128, 故计算机中的10000000表示的是-128。【关于这一点要死记硬背了,可以参考下面列出的对比数记忆】

最高位(即符号位)为1的8位有符号数有128个,故可表示128个负数;最高位为0的8位有符号数有128个,但全0的那个表示数0,所以总共只能表示127个正整数。

 

 

具体列出如下,对比看一目了然:

十进制:0(正零、负零都一样,就一个零)

00000000--------0

十进制正数:(从0_0000001到0_1111111共127个数,所以最大正数是127)

0_0000001--------(1)

0_0000010--------(2)

0_0000011--------(3)

................

0_1111111--------(127)

十进制负数:(从0_1111111到0_0000000共128个数,所以最大负数是-128)

1_1111111--------(-1)

1_1111110--------(-2)

1_1111101--------(-3)

................

1_0000000--------(-128)        这是最小的数

记忆办法:首先,除去符号位,数的个数都是从全7个0到全7个1。其次,正数和负数范围都是7位,只不过负数从全7个0到全7个1共128个数,而正数由于全7个0被零占去了,所以从0_0000001到全7个1共127个数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值