位运算符(&,|,^,~)
&,|,^,~ 的用法
&:有0则0
|:有1则1
^:相同则0,不同则1
~:按位取反
System.out.println(6 & 3); 2
System.out.println(6 | 3); 7
System.out.println(6 ^ 3); 5
System.out.println(~6); -7
将6和3转换为二进制
6的二进制 110 110 110
3的二进制 & 011 | 011 ^ 011
---------- ---------- ---------------
010 111 101
00000000 00000000 00000000 00000110 6的原码反码补码都是本身
11111111 11111111 11111111 11111001 对6取反 得到补码
00000000 00000000 00000000 00000001 -1
-------------------------------------------------------
11111111 11111111 11111111 11111000 反码
00000000 00000000 00000000 00000111 (原码)-7