温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java XOR异或是什么

发布时间:2026-08-30 20:31:07 来源:亿速云 阅读:93 作者:小樊 栏目:编程语言

在 Java 中,XOR(异或) 是一种位运算,用符号 ^ 表示。


一、XOR(异或)的规则

XOR 是按二进制位进行运算的,规则是:

相同为 0,不同为 1

a b a ^ b
0 0 0
0 1 1
1 0 1
1 1 0

二、Java 中的 XOR 运算符

Java 中使用 ^ 表示异或。

1️⃣ 整数异或示例

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)

2️⃣ 布尔值异或(不常用)

boolean x = true;
boolean y = false;

System.out.println(x ^ y); // true
System.out.println(x ^ true); // false

布尔 XOR:两个值不同为 true,相同为 false


三、XOR 的常见应用场景

✅ 1. 交换两个变量(不使用临时变量)

int a = 3, b = 5;

a = a ^ b;
b = a ^ b;
a = a ^ b;

System.out.println(a + " " + b); // 5 3

⚠️ 实际开发中不推荐,可读性差,容易出错。


✅ 2. 加密 / 解密(简单)

int data = 123;
int key = 88;

int encrypted = data ^ key;
int decrypted = encrypted ^ key;

System.out.println(decrypted); // 123

✅ 3. 找数组中“只出现一次”的数字(经典面试题)

int[] nums = {2, 3, 5, 3, 2};
int result = 0;

for (int num : nums) {
    result ^= num;
}

System.out.println(result); // 5

✅ 原理:

  • a ^ a = 0
  • 0 ^ b = b

✅ 4. 判断两个数是否异号(高效)

int a = -5;
int b = 3;

boolean differentSign = (a ^ b) < 0;

原理:

  • 符号位不同,异或结果符号位为 1

四、XOR 的重要性质

性质 表达式
自反性 a ^ a = 0
恒等性 a ^ 0 = a
交换律 a ^ b = b ^ a
结合律 (a ^ b) ^ c = a ^ (b ^ c)

五、总结一句话

Java 中的 XOR(^)是按位异或运算,相同为 0,不同为 1,常用于算法、加密、位运算场景。

如果你愿意,我也可以帮你:

  • 图解 解释 XOR
  • 结合 LeetCode 题目 实战
  • 对比 AND / OR / XOR 的区别
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI