计算机基础知识异或计算机基础知识异或
异或,是⼀个数学运算符,英⽂为exclusive OR,缩写为xor,应⽤于逻辑运算
参与运算的两个值,如果两个相应bit位值相同,则结果为0,否则为1,简单概况就是不同为1,相同为0.
0^0 = 0,1^0 = 1,0^1 = 1,1^1 = 0
按位异或的3个特点:
0异或任何数=任何数
1异或任何数-任何数取反
任何数异或⾃⼰=把⾃⼰置0
按位异或的⼏个常见⽤途:
1) 使某些特定的位翻转,10100001^00000110 = 10100111,也就是把从右向左的,第2和3位翻转为1
2) 实现两个值的交换,⽽不必使⽤临时变量。
a = a^b; // 此时a是两数异或后的值
b = b^a; // 异或后的值和b异或,那么得到是原始a的值
a = a^b;// 此时b是原来a的值,a还是异或后的值,那么继续异或后得到的是原始b的值
3) 在汇编语⾔中经常⽤于将变量置零,⾃⼰异或⾃⼰置为0:
xor a,a
4) 快速判断两个值是否相等,(a ^ b) == 0
5) 应⽤通式:对两个表达式执⾏按位异或。result = expression1 ^ expression2,,,常⽤于简单的加密解密,使⽤固定或者可变key值,两次
异或,实现加密,解密