public void test_and(){
int a = 128;
// 0000 0000 0000 0000 0000 0000 1000 0000
int b = 129;
// 0000 0000 0000 0000 0000 0000 1000 0001
//
结果: 1&1 = 1; 0&1 = 0;0&0 = 0
a = a&b;
// 0000 0000 0000 0000 0000 0000 1000 0000
System.out.println("a&b = "+a);
// 结果: 1|1 = 1; 0|1 = 1;0|0 = 0
b = a|b;
// 0000 0000 0000 0000 0000 0000 1000 0001
System.out.println("a|b = "+b);
// 结果: 1^1 = 0; 0|1 = 1;0|0 = 0
a = a^b; // 0000 0000 0000 0000 0000 0000 0000 0001
b = a^b;
// 0000 0000 0000 0000 0000 0000 1000 0000
a = b^a;
// 0000 0000 0000 0000 0000 0000 1000 0001
System.out.println("a^b 之后: a = "+a +" b = "+b);
//发现这样异或,数值交换了
int c = 42;
// 0010 1010 ~= 1101 0101 => 1010 1011
c = ~c;
// java 採用反码计数 负数的反码 = 取反+1(还是负数)
System.out.println("~c c = "+c);
}