理解java位操作符

最近的工作需要大量的采用位操作符的代码。其实项目本身没有这样的需求,不过现在我的职责是维护同事的代码,而这位同事的偏好是采用位操作,没办法学习了。

无符号右移位操作符“>>>”在将bit串右移位时,从bit串的最左边填充0,这和带符号右移位操作符“>>”不同。“>>”在将bit串右移位时,从bit串的最左边填充原来最左边的位。也就是说,bit串原来最左边的位是符号位,如果为1,则在带符号右移时最左边始终填充1;如果为0,则在带符号右移时最左边始终填充0。3GEYEn x,d.C2z[
  移位操作符的例子见下表。

操作结果说明
00110010 << 211001000右边始终填充0
00110010 >> 200001100结果一样
00110010 >>> 200001100
10110010 >> 211101100结果不同
10110010 >>> 200101100

“按位与”操作符“&”对两个bit串按位进行逻辑与,“按位或”操作符“|”对两个bit串按位进行逻辑或,“按位异或”操作符“^”对两个bit串按位进行异或操作。运算规则如下表所示。

按位与按位或按位异或
0 & 0 = 00 | 0 = 00 ^ 0 = 0
0 & 1 = 00 | 1 = 10 ^ 1 = 1
1 & 0 = 01 | 0 = 11 ^ 0 = 1
1 & 1 = 11 | 1 = 11 ^ 1 = 0

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值