试图了解特定的印刷声明

时间:2019-02-05 06:56:44

标签: java binary

如果我有打印语句:System.out.println(x&0x00000001); 假设int x = -1;

为什么打印1?

我了解二进制,十六进制甚至八进制等数字系统。我不太了解print语句中使用“&”及其实际作用。

public static void main(String[] args) 
{
    int x = -1;
    System.out.println(x & 0x00000001);
}

预期结果:“我不太清楚”

结果:1​​

1 个答案:

答案 0 :(得分:1)

-1的二进制表示形式是(请阅读2的补码以了解更多信息)

11111111111111111111111111111111

0x00000001的二进制表示形式是:

00000000000000000000000000000001

当你按位求和两个数字时

00000000000000000000000000000001

因此输出为1。