Java编程思想---移位操作时,只有数值右端的低5位才有用这句话如何理解

原文:

  如果对char,byte或者short类型的数值进行移位操作,那么在移位进行之前,他们会被转换成int类型,并且得到的结果也是一个int类型的值,只有数值右端的低5位才有用,这样可防止我们移位超过int型值所具有的位数(译注:因为2的5次方是32,而int型值只有32位),若对一个long类型的数值进行处理,最终得到的结果也是long,此时只会用到数值右端的低6位,以防止移位超过long型数值所具有的位数。

 

如何理解?

举例:a>>b   a类型移动b位

这里数值右端指的是b,也就是在a为char,byte或者short类型或者int类型(4字节,32位)时,可以移动的位数为0-31位,所有推得

0 <= b <= 31  转换为二进制也就是0-5位,也就是文中说的只有数值右端的低5位才有用,

long类型(8字节,64位)可以移动 0-63位, 转换为二进制也就是0-6位,也就是文中说的只有数值右端的低6位才有用

 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值