位运算符对整数在内存中的二进制位进行操作,由于其具有运算速度快的特点,经常被用于性能优化。

&
|
^
异或异或01
&^

对于第二个数字来说,将第二个数字对应的位清空。其运算表如下

 0 &^ 0 = 0
 0 &^ 1 = 0
 1 &^ 0 = 1
 1 &^ 1 = 0
a = 0011 1010
a &^ 0000 0010 = 0011 1000
<<

将二进制向左移动,右边空出的位用0填补,高位左移溢出则舍弃该高位。由于每次移位数值会翻倍,所以通常用代替乘2操作。当然这是建立在移位没有溢出的情况。

>>
010111

移位操作虽然方便高效,但是在使用过程中要注意溢出和舍弃的问题。