理解java位操作符

来源:互联网 发布:04年阿根廷男篮数据 编辑:程序博客网 时间:2024/05/22 10:44

转贴地址:http://blog.csdn.net/lftx4080/article/details/2024091


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

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

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

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

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

 

原创粉丝点击