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);
}