补码负数多一个的问题

这是一个困扰我许久的问题,总是似懂非懂,负数补码表示比原码多一个,8位为-128 -- 127,32位定点整数范围为-32768 -- 32767,有几个点有点感觉:

1.负数零的原码补码相同10000000按照取反加1得到00000000,按照取模也是得到00000000所以就多了个10000000没有原码可以转换为它。

2.那为什么又将它定位负数最小值?我是这样理解的,01111111(补)的原码01111111(原)是正数最大10000001(补)的原码11111111(原)是负数最小的,和取模的规律一致,所以10000000(补)规定为负数最小或者正数最大比较合理,而最高位为1和负数格式比较一致,所以就规定为了负数最小值了吧吐舌头

 

转载于:https://www.cnblogs.com/codingMozart/p/3982183.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值