位运算是使用二进制形式进行运算,与平常的数值运算相比,速度较快。主要包括:左移、右移、无符号右移、与运算、或运算、异或运算、取反
1、左移
<<左移运算符,高位去掉,低位补0
1 int a = 6; 2 a = a << 1; 3 System.out.println(a); 4 5 输出: 6 7 12
2、右移
>>右移运算符,高位按照原来的数字进行补充,低位去掉。>>>效果类似,只是高位使用 0 补充,低位去掉
1 int a = 24; 2 a = a >> 1; 3 System.out.println(a); 4 5 输出: 6 7 12
3、与运算
& 与运算符,两个为 1 才为 1,有一个为 0 就是 0
1 int a = 24 2 a = a & 10; 3 System.out.println(a); 4 5 输出: 6 7 12
4、或运算
| 或运算符,两个有一个为 1 即为 1
1 int a = 24; 2 a = a | 10; 3 System.out.println(a); 4 5 输出: 6 7 26
5、异或运算
^ 异或运算符,两个只有在不同时才为 1
1 int a = 24; 2 a = a ^ 10; 3 System.out.println(a); 4 5 a = a ^ 10; 6 System.out.println(a); 7 8 输出: 9 10 18 11 24
6、取反运算
~ 取反运算符
1 int a = 24; 2 a = ~a; 3 System.out.println(a); 4 5 输出: 6 7 -25