56. 数组中只出现一次的数字
目录
与运算(AND):
或运算(OR):
异或运算(XOR):
public class UniqueNumberFinderBitwise {
public static int findUniqueNumber(int[] nums) {
int uniqueNum = 0;
// 使用异或运算找出只出现一次的数字
for (int num : nums) {
uniqueNum ^= num;
}
return uniqueNum;
}
public static void main(String[] args) {
int[] nums = {2, 3, 2, 3, 4};
System.out.println(findUniqueNumber(nums)); // 输出: 4
}
}
在Java编程语言中,位运算涉及对整数的二进制表示直接进行操作。以下是与(AND)、或(OR)以及异或(XOR)三种基本的位运算符及其对应的符号:
-
与运算(AND):
- 运算符:
&
- 示例:
5 & 3
- 运算规则:对两个数的二进制形式逐位进行与操作,仅当两个对应位都为1时,结果位才为1,否则为0。
- 运算符:
-
或运算(OR):
- 运算符:
|
- 示例:
5 | 3
- 运算规则:对两个数的二进制形式逐位进行或操作,只要两个对应位中有一个为1,结果位就为1,否则为0。
- 运算符:
-
异或运算(XOR):
- 运算符:
^
- 示例:
5 ^ 3
- 运算规则:对两个数的二进制形式逐位进行异或操作,当两个对应位不同时,结果位为1,相同时为0。
- 运算符:
下面是这三个运算符的简单示例代码:
public class BitwiseOperations {
public static void main(String[] args) {
int a = 5; // 二进制表示为 0101
int b = 3; // 二进制表示为 0011
// 与运算
int andResult = a & b; // 结果为 0001,即十进制的 1
System.out.println("a & b = " + andResult);
// 或运算
int orResult = a | b; // 结果为 0111,即十进制的 7
System.out.println("a | b = " + orResult);
// 异或运算
int xorResult = a ^ b; // 结果为 0110,即十进制的 6
System.out.println("a ^ b = " + xorResult);
}
}