试图了解特定的打印语句[复制]

问题描述 投票:1回答:1

这个问题已经在这里有一个答案:

如果我有打印语句内容:System.out.println(X 00000001);假设INT X = -1;

为什么它打印1?

我理解数字系统,如二进制,十六甚至有些八进制。我不太明白是使用了“&”打印中声明,它实际上做的。

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

预期的结果:“我不很清楚”

结果:1

java binary
1个回答
1
投票

-1的二进制表示(阅读约2的补,以了解更多有关):

11111111111111111111111111111111

的00000001的二进制表示为:

00000000000000000000000000000001

当您逐位和两个数字你

00000000000000000000000000000001

因此,输出为1。

© www.soinside.com 2019 - 2024. All rights reserved.