Java XOR

2025 年 5 月 3 日 | 阅读 5 分钟

Java XOR 是 Java 中可用的按位运算符之一。XOR(也称为异或)接受两个布尔操作数,如果它们不同则返回 true。XOR 运算符的最佳用例是当两个给定的布尔条件不能同时为真时。除了用于布尔值外,XOR 运算符还经常在位级别上应用于整数值。

让我们了解一下 Java 中的按位运算符是什么?

Java 中的按位运算符

运算符是为执行特定操作而定义的符号。例如,运算符 '+' 用于将两个值相加。就像传统运算符一样,Java 支持按位运算符。这些运算符用于对数字的各个位执行操作。这就是为什么这些运算符被称为按位运算符。它从左到右求值。

按位运算符可与任何整数数据类型一起使用,例如 int、char、short 等。通常,在对二进制索引树执行操作或查询操作时使用按位运算符。

Java 中有七种按位运算符,用于执行位级别操作

运算符描述
|按位或
&按位与
^按位异或
~按位补码
<<左移
>>带符号右移
>>>无符号右移

在本节中,我们将讨论 Java 中的按位 XOR 运算符。查看所有Java 中的按位运算符

Java XOR 运算符(异或)

XOR 运算符用插入符号(^)符号表示。它接受两个值,如果它们不同则返回 true;否则返回 false。在二进制中,true 表示为 1,false 表示为 0。

以下是 XOR 运算符的真值表

xyx^y
000
011
101
110

从上表可以看出,当且仅当两个操作数的值不同时,它才返回 true。否则,它返回 false。

让我们通过一个例子来理解它

XOR 运算符示例

请看以下示例

TestXor.java

输出

x ^ y = 2

解释

提供的 Java 代码演示了对两个整数值使用按位 XOR 运算符。在 TestXor 类的 main() 方法中,声明并初始化了两个数字 x 和 y,分别为 5 和 7。接下来,对这些整数执行按位 XOR 操作。

五在二进制表示中是 0101,而七是 0111。XOR 操作会比较两个数字的每个对应位,如果位不同则给出 1,否则给出 0。因此,0101 ^ 0111 得到 0010,即十进制的 2。XOR 操作的输出是 System.out.println("x ^ y = " + (x ^ y));,它将 x ^ y = 2 打印到控制台。

其他一些用例和示例

1. 无需临时变量即可交换值

XOR 可用于在不使用临时变量的情况下交换两个值。

SwapUsingXOR.java

输出

Before swap: a = 10, b = 15
After swap: a = 15, b = 10

解释

提供的 Java 代码演示了一种使用 XOR 按位运算符在不需要临时变量的情况下交换两个整数变量值的有效技术。最初,变量 a 和 b 分别设置为 10 和 15。然后分三个步骤应用 XOR 操作:首先,a 更新为 a XOR b 的结果,将 a 更改为 5。接下来,b 更新为新的 a XOR b 的结果,这简化为 a 的原始值,现在使 b 等于 10。

最后,a 更新为新的 a XOR b 的结果,这简化为 b 的原始值,现在使 a 等于 15。这个序列有效地交换了 a 和 b 的值。输出证实了交换,显示 a 现在是 15,b 现在是 10。这种方法利用了 XOR 运算符的特性,其中每个位比较的结果是 1(如果位不同)和 0(如果位相同),使其成为一种巧妙而有效的值交换方法。

2. 检查奇数或偶数

整数的最低有效位决定了它是奇数还是偶数。

CheckOddEven.java

输出

9 is odd

解释

提供的 Java 代码演示了如何使用 XOR 按位运算符确定给定的整数是奇数还是偶数。main() 方法用值 9 初始化一个整数变量 num。然后代码使用 if 语句检查 num XOR 1 的结果是否等于 num + 1。

对于奇数,通过 XOR 1 翻转最低有效位(为 1)会导致下一个更高的偶数,从而使条件为 true。反之,对于偶数,翻转最低有效位(为 0)会导致下一个更低的奇数,从而使条件为 false。在这种情况下,因为 9 是奇数,所以 9 XOR 1 等于 10,这确实是 9 + 1,因此程序打印“9 is odd”。如果 num 是偶数,程序将打印“num is even”。

结论

Java 的 XOR 运算符是位逻辑计算的有效工具。在需要评估互斥条件的情况下,它很有用,因为它在两个布尔操作数不同时返回 true。当对整数使用 XOR 时,它会执行位比较,在操作数对应的位不同时将结果位设置为 1。

此功能对于各种编程任务非常有帮助,例如数据处理、加密和二进制表示问题解决。了解和使用 XOR 等按位运算符(如 TestXor 示例所示,该示例使用 XOR 操作来比较和修改整数的二进制值)可以改进高效 Java 代码的编写。