逻辑与使用

Usage of Logical & in java

我的问题可能很基本,但我还是在问这个问题。我重新引用了这篇文章,我在逻辑&中理解的是按位和0101 & 0011 = 0001是否有任何可以在十进制数上应用&的用例?例如,如果考虑逻辑^(xor),那么在数组中查找唯一的数字很有用,其中所有其他元素都存在两次。

如果你有一个数组[1,1,2,2,3,3,4,4,6,6,7]。你需要7分

1
2
3
4
5
6
    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);

此代码将快速给出结果,同样,在这种情况下,是否有使用&的情况?


没有"对十进制数应用"这样的事情。数值以二进制形式存储在计算机中。数字值的默认打印格式是十进制,但这只是为了让它们具有人类可读性。

例如,在ints上使用&(按位和),当您有一个int位掩码(其中每个位代表某些内容)时,可以按位和确定任何特定位的值。

例如:

1
2
3
4
5
6
7
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

}