Java编程(位运算符)

来源:互联网 发布:淘宝小号赚钱 编辑:程序博客网 时间:2024/06/08 04:56

Java支持的位运算符:

&:按位与。

|:按位或。

~:按位非。

^:按位异或。

<<:左位移运算符。

>>:右位移运算符。

<<<:无符号右移运算符。

这四个运算符比较常见,也比较简单总结如下表所示:

第一个运算符

第二个运算符

按位与

按位或

按位异或

0

0

0

0

0

0

1

0

1

1

1

0

0

1

1

1

1

1

1

0

PS:对于异或运算符大家可能觉得不太容易记忆(记是永远记不住的),其实前人早就总结了异或的规律,如下所述。

异或:又称半加法运算,例如1异或1可以当成二进制下的1+1=10然后取最后一位,正好是异或的结果,0+0、1+1、0+1同理。

运算原理:

前四种位运算符是比较简单的,只需要按位进行逻辑运算即可例如5&9(结果为1)的执行过程如下:

再比如~-5(结果为4)的执行过程如下:

其他运算(|、~、^)同理。

后面的移位运算相对前面的有些复杂,但是细细研究还是很好理解的。

-5<<2(结果为-20)的执行过程如下:

-5>>2执行过程如下:

-5>>>2的运算过程

通过上面的过程可以看出,只要被移位的二进制码没有发生有效位的数字丢失(对于正数而言,通常指被移出的位全部都是0),不难发现左移n位就相当于乘以2的n次方,右移则是处以2的n次方。还有一点就是进行移位运算不会改变操作数本身,它只是得到了一个新的运算结果,而原来的操作数本身是不会发生改变的。

原创粉丝点击