C语言拾遗

int型的位数和机器是相关的,假设int型是8位的

则有符号数的取值范围是

-128~127

从二进制上看:

10000000-128

10000001   -127

......

11111111   -1

00000000   0

00000001   1

00000011    3

......

011111111   128

除去-128和0这两个数,其他的数的实际的二进制标识,除掉第一位后,其实是按照倒叙完全一致的,也就是

-127= 1 (去掉符号位)

.....

127= -1

这个规律按照负数存储的规则,即绝对值按位取反再加一,可以推导出来的。

假设整数用8位来表示,那么一个整数和把它取按位取反后得到的数相加,应该就是2^8-1,所以2^8 = 负数的补码 + 绝对值原码,又由于负数第一位标识符号位,减掉符号位2^7,则变成 负数的补码(去掉符号位)= 2^7 - 绝对值原码。

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值