逻辑与Java的用法

时间:2018-12-10 07:41:46

标签: java

我的问题可能是如此基本,但我仍然在问这个问题。我推荐了this post,而我在逻辑&中所理解的却是按位进行的, 0101 & 0011 = 0001 有没有可以在小数上应用&的用例? 例如,如果考虑逻辑^(XOR),则在数组中查找所有其他元素均出现两次的唯一数字很有用。

例如:如果您有一个数组[1,1,2,2,3,3,4,4,6,6,7] 您需要获得7

    int[] x = new int[]{1,1,2,2,3,3,4,4,6,6,7};
    int y = x[0];
    for (int i = 1; i < x.length; i++) {
        y ^= x[i];
    }
    System.out.println(y);

此代码将快速给出结果, 同样,在这种用例中有&的用法吗?

1 个答案:

答案 0 :(得分:1)

没有“套用十进制数”这样的东西。数值以二进制形式存储在计算机中。数字值的默认打印为十进制格式,但这只是为了使它们易于阅读。

例如,在&上使用int(按位与),当您有一个int位掩码(每个位代表某物)时,可以使用按位AND来确定任何特定位的值。

例如:

int mask = 13;
if (mask & 2 > 0) { // this tests if the 2nd lowest bit of mask is 1

}
if (mask & 4 > 0) { // this tests if the 3nd lowest bit of mask is 1

}