位运算的辉煌:通过异或实现代码优化
创作时间:
作者:
@小白创作中心
位运算的辉煌:通过异或实现代码优化
引用
CSDN
1.
https://blog.csdn.net/Hi_alan/article/details/135833677
异或(XOR)运算是一种重要的位运算,广泛应用于编程和计算机科学中。它不仅能够简化代码,提高效率,还在数据交换、加密、错误检测等多个领域发挥着重要作用。本文将从基本概念出发,深入探讨异或运算的规则、特性及其在实际编程中的应用场景。
一、基本概念
异或是一种二进制的位运算,符号以 XOR 或 ^ 表示。
异或运算可以看作是模2加法,其结果等于对应位相加取模2。
A XOR B = (A + B) mod 2。
二、运算规则
相同值异或结果为0,不同值异或结果为1:
当两个输入位相同时,异或的结果为0。
当两个输入位不同时,异或的结果为1。
A | B | A XOR B |
|---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
三、基本特性
- 交换律:即A^B = B ^ A。
- 结合律:( A ^ B ) ^ C = A ^ ( B ^ C )
- 自反性: A ^ B ^ B = A (由结合律可推: A ^ B ^ B = A ^ ( B ^ B ) = A ^ 0 = A)
- 零元素:任何二进制数与零异或,都会等于其本身。A ^ 0 = 0。
- 逆元素:对于任意值A,A ^ A = 0,因此A的逆元素是它本身。
四、应用场景
1. 交换两个数
异或运算可以实现两个变量值的交换,而无需使用额外的临时变量。以下是Java代码示例:
public class SwapExample {
public static void main(String[] args) {
int a = 5;
int b = 7;
System.out.println("Before swapping: a = " + a + ", b = " + b);
// Swap using XOR
a = a ^ b;
b = a ^ b;
a = a ^ b;
System.out.println("After swapping: a = " + a + ", b = " + b);
}
}
2. 排除偶次重复
在数组中,如果所有元素都出现了两次,只有一个元素出现了一次,可以使用异或运算快速找到这个唯一的元素。以下是Java代码示例:
public class Test {
public static void main(String[] args) {
// 异或方法:将所有整数异或,出现偶数次的整数会被抵消,最终留下不重复整数。
int result = 0;
int[] nums = new int[]{1,3,2,3,4,2,4};
for (int index = 0; index < nums.length; index++) {
result = result ^nums[index];
}
System.out.println(result);
}
}
3. 加密运算
异或运算可以用于简单的加密和解密操作。以下是Java代码示例:
public class Example {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个英文字符串或解密字符串");
String password = scanner.nextLine();
char[] chars = password.toCharArray();
for (int i = 0; i < chars.length; i++) {
chars[i] = (char) (chars[i] ^ 20000);
}
System.out.println("加密或解密结果如下:");
System.out.println(new String(chars));
}
}
4. 校验和和错误检测
异或运算在计算机通信中用于生成校验和,以便检测数据传输中的错误。在数据包传输过程中,发送方将数据的各个部分进行异或运算,将结果附加到数据包中。接收方对接收到的数据再次进行异或运算,如果结果为0,则表明数据传输无误。
热门推荐
大连理工稳居第一,东北财经进入前三,7校保研率超过10%
小米要出AI眼镜了?公关部负责人回应“小米眼镜官博上线”
提成该不该发、该发多少、该何时发?这场发布会为您答疑解惑
用户投诉“美团外卖”平台套路深 发布虚假订单坑骗骑手
住院不慌乱!必备物品清单全在这
加快培育种业发展新质生产力
一氧化碳浓度检测仪:实时监测与精准报警,保障您的安全
2025高血脂新指南:6类降脂药这样吃,精准降低心血管风险!
大英图书馆馆藏的中国音乐古籍善本
右眼皮跳的原因与预防:科学看待身体信号的重要性
南怀瑾先生:“尊师重道”是人类文明的共通德性
《无退休社会》:如果70岁的你还需要继续工作 | 新书
2024平坝樱花园自驾攻略及园内交通指南
茶树栽培管理技术
小儿腹泻脱水程度分型及处理方法
三极管管脚如何判别?记住这个口诀!
电脑电源灯闪烁无法开机?一文详解原因及解决方案
捐造血干细胞的危害,捐了造血干细胞会怎样
演员姚晨转型制片人再创佳绩,监制电影获柏林电影节银熊奖
一图看完计算机内存和存储设备类型
技术丨常见5种缓冲液配制要点梳理
私营企业职称评审流程解析:如何提高评审效率与质量
摆脱一昧的白,清新明快的色彩北欧家居
港科又掉出前三!复旦赶超清华,港城碾压港科?清华教授发文内涵,谁才是真正赢家?
糖醋藕片:酸甜香脆,藕香扑鼻
肾友有这些表现就怀疑自己得尿毒症?做3项简单检查就可排除
怀孕了可以吃芒果吗?芒果美味又营养,孕妇适量吃无忧
经常喝酒的人,吃护肝片是在骗自己吗?
工作城市选择有哪些关键考量?这些考量如何影响职业发展?
玉龙雪山:滇西北高原上的雪域奇观