有符号数中负数为什么比整数多一个

在大学的时候,老师一直都在说,在有符号数中,负数比正数多一个。但是为什么负数比正数多一个。当时不知道是老师没讲清楚还是自己没听清楚(估计是自己没有听清楚),后来查了资料,了解了一点,但是还是云里雾里,搞得不是很清楚,今天晚上我决定将它搞清楚。

这里我们以一个字节为例子,一个字节的有符号的表示范围是-128~127.那么,为什么最小的数是-128呢,可以看到,负数就比正数多一个-128,-128在计算机红表示为0x80,二进制为10000000。我知道,有符号位中,第一位为符号,7位表示的最大数为127,那么,0x80如果代表-128,明显已经越界了,将符号位给覆盖掉了,这里0x80有2种理解,一种理解,看作是-0(这种很好理解,符号位为1),+0的二进制为0x00,但-0和+0代表的都是同一个数,没有必要用两种不同的表示,第二种理解是看作0x81-1,0x81(-127)-1刚好等于0x80,,则将0x80(-128)作为最小值。这样就理解了为什么负数比正数多一位。

以上是本人的理解,也许不对,不对请指正,共同学习进步。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值