在 Java 中,XOR(异或) 是一种位运算,用符号 ^ 表示。
XOR 是按二进制位进行运算的,规则是:
相同为 0,不同为 1
| a | b | a ^ b |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
Java 中使用 ^ 表示异或。
int a = 5; // 二进制:0101
int b = 3; // 二进制:0011
int c = a ^ b; // 0110 -> 6
System.out.println(c); // 输出 6
计算过程:
0101 (5)
0011 (3)
----
0110 (6)
boolean x = true;
boolean y = false;
System.out.println(x ^ y); // true
System.out.println(x ^ true); // false
布尔 XOR:两个值不同为
true,相同为false
int a = 3, b = 5;
a = a ^ b;
b = a ^ b;
a = a ^ b;
System.out.println(a + " " + b); // 5 3
⚠️ 实际开发中不推荐,可读性差,容易出错。
int data = 123;
int key = 88;
int encrypted = data ^ key;
int decrypted = encrypted ^ key;
System.out.println(decrypted); // 123
int[] nums = {2, 3, 5, 3, 2};
int result = 0;
for (int num : nums) {
result ^= num;
}
System.out.println(result); // 5
✅ 原理:
a ^ a = 00 ^ b = bint a = -5;
int b = 3;
boolean differentSign = (a ^ b) < 0;
原理:
| 性质 | 表达式 |
|---|---|
| 自反性 | a ^ a = 0 |
| 恒等性 | a ^ 0 = a |
| 交换律 | a ^ b = b ^ a |
| 结合律 | (a ^ b) ^ c = a ^ (b ^ c) |
Java 中的 XOR(
^)是按位异或运算,相同为 0,不同为 1,常用于算法、加密、位运算场景。
如果你愿意,我也可以帮你:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。