计算机基础知识 异或
异或,是一个数学运算符,英文为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值,两次异或,实现加密,解密