csapp第二版(数据的表示~整数

----关于分析数据类型的表示范围

csapp 第二版 32页这个图让我们如何对一个类型进行数据分析给予了一点启示

char是被分配一个字节的,一个字节八位(8bits),没有说明是无符号的所以就认为是有符号的,根据补码规则,正数最大值为2的七次方减一等于127(因为第一位权重为2的七次方但是为了表示正数设为0)而负数的最小值为2的七次方(因为第一位权重为2的七次方,而且为了表示负数设为1)。

在这里我们可以观察到一个特点:数据类型的表示范围并不是对称的,而且很明显最大值+1=最小值的绝对值。(这个直接看或许会没有头绪,但是结合着补码的表示规则就可以很轻易的理解了。)

当然了书上除了上面一种解释,还给了一种解释,以8位表示为例,那就是当符号为1,表示复数的时候,剩下的7个位无论取1还是取0,都可以表示一个复数,那么也就是有着2的七次方等于128种可能,而当符号位为0表示正数的时候,剩下的7个位有128中可能,但是要排除一种可能,那么就是0,所以只能表示128-1=127个正数。(这样子详细的讲可能会好懂一些,原谅我的笨拙hh)

unsigned char就明显的说明了这是无符号类型的,所以说并没有符号位的概念,表示的最小数值当然就是所有位置为0,最大的当然是所有位置1,并不需要计算

2的七次方 + 2的六次方 +……2的零次方,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值