Java下位运算符

本文最后更新于:2022年12月19日 晚上

0.前言

以前刷题,以及学计算机系统这些东西的时候经常碰到位运算符,也只是了解个大概,今天系统地学习总结了一下。

1.位运算符

Java下位运算符有这些:

1.1 & 与

1
2
3
4
int num1 = 56;
int num2 = 55;

System.out.println(num1 & num2);

与运算下,可以把01理解为false 与 true,那么 1 & 1 = 1, 1 & 0 = 0, 0 & 0 = 0

1.2 | 或

同与运算 1 | 1 = 1, 1 | 0 = 1, 0 | 0 = 0

1.3 ~ 取反

1
2
3
int num1 = 56;

System.out.println( ~num1 ); // -57

取反就更好理解了

1变0, 0变1

1.4 ^ 异或

只有不同才是1,相同全是1

1.5 << 左移

左移的意思是将二进制向左移多少位

例如:12(1100) << 2

结果是:48,同样我们可以计算 12 << 3 = 96, 8 << 4 = 128

所以可以总结得到 M << n = M * 2^n

1.6 >> 右移

右移同左移,但是在符号上有一定区别,在左移中,空余位置全部用0补齐,而在右移中,正数用0补齐,负数用1补齐

12 >> 2 = 3 (11)