我的问题可能是如此基本,但我仍然在问这个问题。我推荐了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);
此代码将快速给出结果,
同样,在这种用例中有&
的用法吗?
答案 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
}