Java中的移位操作<<,>>,>>>

<<:表示左移,不分正负数,低位补0。

如:8<<2  -> 8<<1=16  -> 16<<1=32

       -8<<2  -> -8<<1= -16  -> -16>>1= -32

>>:带符号右移。正数右移高位补0,负数右移高位补1。

如:8>>2  -> 8>>1=4  -> 4>>1=2

       -8>>2  -> -8>>1= -4  -> -4>>1= -2

>>>:无符号右移。无论是正数还是负数,高位通通补0。

4=1111 1111 1111 1111 1111 1111 1111 1100,
>>1=1111 1111 1111 1111 1111 1111 1111 1110=-2,
>>>1=0111 1111 1111 1111 1111 1111 1111 1110=2147483646,而不是-2。
----------- 
-1=1111 1111 1111 1111 1111 1111 1111 1111,
>>1=1111 1111 1111 1111 1111 1111 1111 1111=-1,
>>>1=0111 1111 1111 1111 1111 1111 1111 1111=2147483647,而不是-1。

简单理解:

a << 1  相当于a乘以2,正负数据符号不变。

a >> 1  相当于除以2,正负数据符号不变。

>>> 不考虑高位的正负号,正数的 >>> 等同于 >>

参考:Java中的 << >> >>>_ConstXiong-CSDN博客_java<<https://blog.csdn.net/meism5/article/details/90055481?utm_medium=distribute.pc_relevant_t0.none-task-blog-2~default~CTRLIST~default-1.no_search_link&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2~default~CTRLIST~default-1.no_search_link

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值