public class IndentifierTest01{

public static void main(String[] args) {
    int a = 3;
    int b = 4;
    System.out.println(a&b);//按位与
    System.out.println(a|b);//按位或
    System.out.println(a^b);//按位异或
    System.out.println(~a);//取反

    //移位
    int c = 3<<2;//相当于3*2*2
    System.out.println(c);
    System.out.println(12>>1);//相当于12/2

}

}
运行结果:

0
7
7
-4
12
6

1.与运算符,&:只有前后两个运算都为1时,结果才为1.

a:  0011
b:  0010
a&b=0010

2.或运算符,|:有1位为1,结果便为1。

a:  0011
b:  0010
a|b=0011

3.异或运算符,^:不相同则为1.

a:  0011
b:  0010
a^b=0001

4.取反运算符,~:1变0,0变1.

a:  0011
~a= 1100
b:  0010
~b= 1101

5.移位运算符,<<, >> : 左移乘2,右移除2,如果超出,则舍弃。

a<<5
移前:0000 1111 = 15
移后:1110 0000 = 224