我的代碼是位運算符的Java
final int CONST_1 = 1010;
final int CONST_2 = 1011;
System.out.println("CONST_1 & CONST_2: " + Integer.toBinaryString(CONST_1 & CONST_2));
System.out.println("CONST_1^CONST_2: " + Integer.toBinaryString(CONST_1^CONST_2));
System.out.println("CONST_1 | CONST_2: " + Integer.toBinaryString(CONST_1 | CONST_2));
System.out.println("~CONST_1 : " + Integer.toBinaryString(~CONST_1));
輸出是
CONST_1 & CONST_2: 1111110010
CONST_1^CONST_2: 1
CONST_1 | CONST_2: 1111110011
~CONST_1 : 11111111111111111111110000001101
在我看來這是錯誤的,它應該是:
CONST_1 & CONST_2: 1010
CONST_1^CONST_2: 1
CONST_1 | CONST_2: 1011
~CONST_1 : 101
請給我解釋一下爲什麼我有這樣的結果。謝謝!
您初始化常量的值是DECIMAL,而不是二進制! – ghik