Java中关于无符号右移的问题 (~0L>>>-5)当右边为负数的情况

今天  远哥突然问了一个问题  System.out.println((~0L << 2) &(~0L >>> -5));

这个问题中出现了一个以前不常见的一种情况  就是(~0L >>> -5)  这个问题中

无符号右移出现了右边操作数是负数的情况  这种情况Java开发这么多年几乎没有遇到过

赶紧上网查找  知乎大神和CSDN大神都做出来回答  我在这里总结出来:


Chapter 15. Expressions
If the promoted type of the left-hand operand is int, then only the five lowest-order bits of the right-hand operand are used as the shift distance. It is as if the right-hand operand were subjected to a bitwise logical AND operator & ( §15.22.1) with the mask value 0x1f (0b11111). The shift distance
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值