位运算符一般不常用到,因为它们主要是和二进制打交道,所有我们稍微了解一下就好。下面直接用例子说明:
A = 0011 1100 B = 0000 1101 &(与):A的每一位与B的每一位进行比较,当相对应位的数值都为"1"时,则该位输出"1",反之输出"0"。 A&B输出:0000 1100 |(或):A的每一位与B的每一位进行比较,当相对应位的数值都为"0"时,则该位输出"0",反之输出"1"。 A|B输出:0011 1101 ^(异或):当A与B相对位不相同的时候,该位输出“1”,反之输出"0"。 A^B输出:0011 0001 ~(非):所有位取反。 ~B输出:1111 0010
<<(左移):相当于把数值*2的n次方。 例:3<<3,相当于3*2的3次方=3*8=24 >>(右移):相当于把数值/2的n次方 例:24>>3,相当于24/2的3次方=24*8=3
对于Java而言,我们不需要掌握太多的位运算的知识,它们是属于计算机组成原理的东西,我们只需要略知一二即可。