介绍
XOR 运算符是 Java 中用于比较操作数各个位的按位运算符。在 Java 中,XOR 运算符由插入符号 (^) 表示。它用于比较两个位,并且仅当被比较的两个位不相同时返回 true。
XOR 运算符是 Java 中用于比较操作数各个位的按位运算符。在 Java 中,XOR 运算符由插入符号 (^) 表示。它用于比较两个位,并且仅当被比较的两个位不相同时返回 true。
在 Java 中,XOR 运算符可以与任何基本数据类型一起使用。让我们通过基本数据类型来验证 XOR 的真值表。
public class XOR {
public static void main(String[] args) {
System.out.println("0 XOR 0: " + (0 ^ 0)); // 输出: 0
System.out.println("0 XOR 1: " + (0 ^ 1)); // 输出: 1
System.out.println("1 XOR 0: " + (1 ^ 0)); // 输出: 1
System.out.print("1 XOR 1: " + (1 ^ 1)); // 输出: 0
}
}
要运行此代码,请将其保存到文件 ~/project/XOR.java
中,并在终端中执行以下命令:
cd ~/project/
javac XOR.java
java XOR
XOR 运算符也可以用于布尔值。让我们使用布尔值 true
和 false
重新创建真值表。
public class XOR {
public static void main(String[] args) {
System.out.println("False XOR False: " + (false ^ false)); // 输出: false
System.out.println("False XOR True: " + (false ^ true)); // 输出: true
System.out.println("True XOR False: " + (true ^ false)); // 输出: true
System.out.print("True XOR True: " + (true ^ true)); // 输出: false
}
}
要运行此代码,请将其保存到文件 ~/project/XOR.java
中,并在终端中执行以下命令:
cd ~/project/
javac XOR.java
java XOR
XOR 运算符可以用于非 0 或 1 的整数。XOR 运算符会对整数的二进制表示的各个位进行操作。
public class XOR {
public static void main(String[] args) {
System.out.println("9 XOR 15: " + (9 ^ 15)); // 输出: 6
System.out.println("1 XOR 20: " + (1 ^ 20)); // 输出: 21
System.out.println("7 XOR 7: " + (7 ^ 7)); // 输出: 0
System.out.print("32 XOR 0: " + (32 ^ 0)); // 输出: 32
}
}
要运行此代码,请将其保存到文件 ~/project/XOR.java
中,并在终端中执行以下命令:
cd ~/project/
javac XOR.java
java XOR
XOR 运算符还可以用于在整数数组中查找非重复的整数。
public class XOR {
public static int nonRepeatingInteger(int[] numArray) {
int xor = numArray[0];
for (int i = 1; i < numArray.length; i++)
xor = xor ^ numArray[i];
return xor;
}
public static void main(String[] args) {
int[] arr = {10, 12, 5, 6, 10, 6, 12};
int nonRepeatingNum = nonRepeatingInteger(arr);
System.out.print("The non-repeating integer is: " + nonRepeatingNum);
}
}
要运行此代码,请将其保存到文件 ~/project/XOR.java
中,并在终端中执行以下命令:
cd ~/project/
javac XOR.java
java XOR
输出结果为:
The non-repeating integer is: 5
XOR 运算符仅适用于基本数据类型。然而,我们可以编写自己的方法,利用 XOR 运算符和一些额外的逻辑来计算两个二进制字符串的 XOR。
public class XOR {
public static String binaryStringXOR(String binStr1, String binStr2) {
String xor = "";
// 添加零以使两个字符串长度相等
if (binStr1.length() > binStr2.length()) {
String temp = "";
for (int i = 0; i < binStr1.length() - binStr2.length(); i++)
temp += "0";
binStr2 = temp + binStr2;
} else if (binStr2.length() > binStr1.length()) {
String temp = "";
for (int i = 0; i < binStr2.length() - binStr1.length(); i++)
temp += "0";
binStr1 = temp + binStr1;
}
for (int i = 0; i < binStr1.length(); i++) {
xor += binStr1.charAt(i) ^ binStr2.charAt(i);
}
return xor;
}
public static void main(String[] args) {
System.out.println("1001 XOR 1111: " + binaryStringXOR("1001", "1111"));
System.out.println("1 XOR 10100: " + binaryStringXOR("1", "10100"));
System.out.println("0111 XOR 1: " + binaryStringXOR("0111", "1"));
System.out.print("100000 XOR 0: " + binaryStringXOR("100000", "0"));
}
}
要运行此代码,请将其保存到文件 ~/project/XOR.java
中,并在终端中执行以下命令:
cd ~/project/
javac XOR.java
java XOR
输出结果为:
1001 XOR 1111: 0110
1 XOR 10100: 10101
0111 XOR 1: 0110
100000 XOR 0: 100000
在本实验中,我们学习了 Java 中 XOR 操作的基本概念。我们演示了如何在布尔值和整数数据类型上使用 XOR 运算符。此外,我们还实现了一个方法来计算两个二进制字符串的 XOR,以及一个方法来查找整数数组中的非重复整数。