byte的取值范围为什么是-128-127,而不是-127-127

在计算机中,由于没有减法运算,所以我们都是将减法运算转换成加法运算,转换的形式就是将原码转换成补码。

原码                                 反码                                 补码

1111 1111(-127)         1000 0000                        1000 0001

                                        **********

1000 0001(-1)           1111 1110                          1111 1111

1000 0000(?)           1111 1111                          1000 0000

0000 0000(0)             0000 0000                        0000 0000

0000 0001(1)             0000 0001                        0000 0001

                                        **********

0111 1111                       0111 1111                          0111 1111

原码1000 0000在命名规则上是-0,所以貌似1000 0000和0000 0000一样都为0,但我们永远要记住,计算机运算是进行补码之间的运算,1000 0000只是其书面表达,我们接下来看看1000 0000的是如何计算出来的,1000 0000的反码是1111 1111,然后加1,变成了11000 0000,因为byte只有8bite的存储空间,所以第二个1去掉(符号位不变),这样的话11000 0000就变成了1000 0000,减少了128,所以原码为1000 0000的byte,在转化为补码的过程中减少了128,-0-128=-128,因为计算机运算全是以补码的形式进行的,所以1000 0000就代表-128,而不是0,所以byte的取值范围为什么是-128-127,而不是-127-127。

                                                     

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值