Java编程(位运算符)

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次方。还有一点就是进行移位运算不会改变操作数本身,它只是得到了一个新的运算结果,而原来的操作数本身是不会发生改变的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值