-128与-0原码反码相同 -0 与+0补码相同

                        原码                     反码                        补码

+127                0111 1111        0111 1111            0111 1111

+0                    0000 0000        0000 0000            0000 0000

-127                 1111 1111        1000 0000             1000 0001

正数的原码 = 反码 = 补码,包括+0~+127

负数的原码   反码取反   补码=反码+1,但是要保证最高位永远是1 ,-128~-0 


-0                    1000 0000         1111 1111           0000 0000

               -0与-128原码相同     -0与-128反码相同     -0与+0补码相同

-128                 1000 0000        1111 1111             1000 0000      

按反码规则编程:为了区分-0,不识别-128,所以表示范围-127~+127

按补码的规则编程:+0 和 -0 的补码相同,不进行区分,表示范围-128~+127


结论:能识别-0,就不能识别-128;能识别-128,就不能识别-0


原因:

再看看这个规律表

   原码            补码         值
0111 1111   0111 1111   +127
0111 1110   0111 1110   +126
     ...          .. 补码不断-1...
0000 0000   0000 0000     0
1000 0001   1111 1111    -1
1000 0010   1111 1110    -2
1000 0011   1111 1101    -3
    ...          .. 补码不断-1...
1111 1111   1000 0001 -127

无法表达     1000 0000 -128


于是就有了规定 1000 0000 定为 -128的补码
这种定法和上面数学层面的表述是一致的。
这样规定后,负数的补码在机器中就好算了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值