在处理整型数值时,位运算符可以直接对组成整型数值的各个位进行操作。这些位运算符在位模式下工作。位运算符包括:&、|、~、^
与(&)
对应位都为1,结果为1,否则结果为0
int a=129;
int b=128;
System.out.println("a与b的结果:"+(a&b));
# 输出
a与b的结果:128
计算过程如下
10000001 &
10000000 =
10000000
或(|)
对应位只要有一个为1,结果是1,否则就为0
int a=129;
int b=128;
System.out.println("a或b的结果:"+(a|b));
# 输出
a或b的结果是:129
计算过程如下
10000001 |
10000000 =
10000001
非(~)
位为0,结果是1;位为1,结果是0
int a=1;
System.out.println("非a的结果:"+(~a));
# 输出
非a的结果:-2
计算过程如下
~ 00000000000000000000000000000001
= 11111111111111111111111111111110
异或(^)
对应位相同,结果是0,否则结果是1
int a=15;
int b=2;
System.out.println("a异或b的结果:"+(a^b));
# 输出
a异或b的结果:13
计算过程如下
1111 ^
0010 =
1101