java中byte类型数据的取值范围为-128~127的说明

java中byte类型的数据,存储在计算机内存中占1个字节(即0或者1表示的8位二进制数),数据在计算机中都是按照补码形式表现,因此首先了解一下原码、反码、补码的基本概念。

一、原码、反码和补码的对应关系

带符号的数据二进制表示的形式最高位代表符号类型,其中,0表示正数,1表示负数。

对于正整数而言,原码、反码和补码是相同的,比如127

                 符号位           数值位

原码表示为: 0 1111111

反码表示为: 0 1111111

补码表示为: 0 1111111

即127在计算机中表示为01111111

对于负整数而言,反码表示为原码的最高位不变,其他位反转(就是0变为1,1变为0),补码表示反码加1。比如-127

                 符号位           数值位

原码表示为: 1 1111111

反码表示为: 1 0000000

补码表示为: 1 0000001

即-127在计算机中表示为10000001

二、最大范围和最小范围的计算

(1)最大范围

这个比较简单就是计算01111111的十进制数,通过二进制计算十进制:

max = (20+21+22+…+26),

很容易看出这是一个等比数列,通过等比数列求和公式计算为:

max=20(1-27)/1-2=2^7-1=127

(2)最小范围

对于正整数0,二进制表示为00000000

对于负整数-0,二进制表示为100000000(补码) 10000000(原码)

由于正整数0和负整数-0相等,但是它们的二进制表示形式却不一样并且-0还是9位二进制表示的,所以为了解决这个问题,就让10000000表示为-128即

min=-128

(3)总结

每个数据都是由8位二进制表示,每一位都有2种可能(0或者1),所以8位二进制可以组合的数据个数为:

sum = 2^8=256

根据(2)中分析,正整数从0127共sum1=128个,负整数从-1-128共sum2=128个

sum1 + sum2 =sum即从这个角度也可以说明最小范围为-128,最大范围为127。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值