-128 和-0的区别

-128 和-0的区别,其实根本就没有联系。但是容易迷惑。

因为我们说 -128的时候,其实是在说补码,他本身是补码。而我们说-0的时候,是说的原码。

对于char型变量cv,表示的范围是-128~127。

cv = -127

我们知道对于-127的表示是1111,1111,他的补码是1000,0001,在内存是是补码表示方式。

cv = cv -1后,-128,的内存表示1000,0000,这个即使-128的补码。我们知道补码的补码是原码。但是我们不能用求反码再加1的方式求原码。这样会变成10000,0000,变成了0了。

而应该用求原码的定义来取得。即模值(1,0000,0000) - 1000,00001000,0000 。

而应该注意-0是1000,0000,他的补码是1,0000,0000 -000,0000 = 0000,0000 还是0x00h

(注第九位是模位。是不在有范围内的,但是我们的模值是2^8,即1,0000,0000)

ps:求补码公式 :对于负数,则用 模值 -负数的绝对值 = 补码。


个人理解,如有错误,麻烦指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值