1字节表示范围-128到127理解总结

一个字节8位,如果是原码方式表示正整数包含0,是0-255范围,2^8共256个,从0000 0000 到1111 1111的各种排列组合。

如果表示负数,符号位(最高位需要占1位)1表示负数,0表示整数,绝对值范围是0-127,2^7=128;一共正负各128个;

但是这种情况下0占用了2个编码(1000 0000和 0000 0000),数据表示范围-127~-0和 +0~+127

这样总共有256个;实际0占用了正0和负0;这种0占用正0和负0情况,人们想到了另一种编码把负0利用起来,当遇到负数时,采用补码来表示就可以解决这个问题,如果是正数或0时还是保留原码表示(补码的正数还是自己本身);

因此这个负0通过补码算法处理后自然被利用起来了,用来表示-128

补码的算法为:绝对值的原码各位取反后加1

例如 负1的补码

绝对值原码8位原码  0000 0001

反码各个位取反       11111 1110

补码                         1111   1111

此时最高位被处理为1,满足高位为1代表负数的定义

例如 负128的补码

 绝对值的8位原码   1000 0000

反码                        0111 1111

补码                        1000 0000

此时最高位置为1,满足最高位为1代表负数的定义,同时原先表示负0的编码也被利用起来

表示-128

因此一个字节的有符号整数范围-128到127                      

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值