我的代码是位运算符的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