java 位运算符详细介绍_位运算符介绍(二):Java位运算符

Java语言提供了7个位操作运算符。这些运算符只能用于整型操作数,这些整数操作数包括long,int,short,char和byte。这里注意,相对于C/C++,Java多了一个位运算符“>>>”,整型操作数也多了一个byte类型(C/C++中没有byte类型整数),并且操作数没有unsigned类型整数,这需要注意。

下面是Java位操作运算符列表,其中运算符优先级为从上到下递减,但<>,>>>优先级相同。

Java位操作运算符

操作符

功能

用法

~

位求反

~expr

<<

左移

expr1 << expr2

>>

带符号右移,左边空出的位以原来最左边的0或者1填充

expr1 >> expr2

>>>

无符号右移,即左边空出的位以0填充

expr1 >>>expr2

&

位与

expr1 & expr2

^

位异或

expr1 ^ expr2

|

位或

expr1 | expr2

代码示例如下:

1 publicclassBitOperation {2 publicstaticvoidmain(String[] args) {3 intx=3,y=5,z=-5;4 System.out.println("~z="+(~z));5 System.out.println("x&y="+(x&y));6 System.out.println("x^y="+(x^y));7 System.out.println("x|y="+(x|y));8 System.out.println("z<<1="+(z<<1));9 System.out.println("z>>1="+(z>>1));10 System.out.println("z>>>1="+(z>>>1));11 }12 }

运行结果如下:

~z=4

x&y=1

x^y=6

x|y=7

z<<1=-10

z>>1=-3

z>>>1=2147483645

对于前四个结果,我不再做解释,可参考我的博文“位运算符(一):C/C++位运算符”。对于后三个结果,我的解释如下:

z=-5,补码表示为(11111111 11111111 11111111 11111011)

11111111 11111111 11111111 11111011 <<1

= 11111111 11111111 11111111 11110110

11111111 11111111 11111111 11111011 >>1

= 11111111 11111111 11111111 11111101

11111111 11111111 11111111 11111011 >>>1

= 01111111 11111111 11111111 11111101

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值