1. &,|,^ 为双目按位操作符,~为单目按位操作符
System.out.println(Integer.toBinaryString(5));
System.out.println(Integer.toBinaryString(4));
out("4 & 5: " + Integer.toBinaryString(4 & 5));
out("4 | 5: " + Integer.toBinaryString(4 | 5));
out("~5: " + Integer.toBinaryString(~5));
101 -- 4的二进制表示
100 -- 5的二进制表示(32位默认为int型)
4 & 5: 100 -- 4和5相与结果
4 | 5: 101 -- 4和5相或结果
~5: 11111111111111111111111111111010 -- 对(int型)5取非结果
2.布尔类型也可用位操作符
boolean flag1 = true;
boolean flag2 = false;
System.out.println(flag1 & flag2);
System.out.println(flag1 | flag2);
System.out.println(flag1 ^ flag2);
// System.out.println(~flag1);(没有取非操作)
false
true
true