这个问题已经在这里有一个答案:
如果我有打印语句内容:System.out.println(X 00000001);假设INT X = -1;
为什么它打印1?
我理解数字系统,如二进制,十六甚至有些八进制。我不太明白是使用了“&”打印中声明,它实际上做的。
public static void main(String[] args)
{
int x = -1;
System.out.println(x & 0x00000001);
}
预期的结果:“我不很清楚”
结果:1
-1的二进制表示(阅读约2的补,以了解更多有关):
11111111111111111111111111111111
的00000001的二进制表示为:
00000000000000000000000000000001
当您逐位和两个数字你
00000000000000000000000000000001
因此,输出为1。