Java位运算(<< & | ^ ~)
位移
<<
左移
int a = 1;
int b = a << 2;
System.out.println(b); //4
说明:
0001
0100
>>
右移
int a = 4;
int c = a >> 2;
System.out.println(c); //1
0100
0001
&
与
int a = 4;
int b = 1;
int c = a & b;
System.out.println(c); //0
说明:
都是1,结果为1;否则为0
0100
0001
-------
0000
|
或
有一个是1,结果为1;否则为0
int a = 4;
int b = 1;
int c = a | b;
System.out.println(c); //5
说明:
0100
0001
-------
0101
^
异或
两个相反,结果为1;否则为0
int a = 4;
int b = 1;
int c = a ^ b;
System.out.println(c); //5
说明:
0100
0001
-------
0101