^ 按位异或。 如果两位相同则为0,不同则为1。
例如:
1000001
^ 100000
---------
1100001
应用场景:大写字母变成小写字母
小写a: 65, 大写A: 97,之间差了32 = 2^5 (2的5次方)
所以: 65^32 = 97; 反过来 97 ^ 32 = 65;
实际上: 如果 M ^ N = K → K ^ N = M
应用举例:交换两变量
例如,所有的程序教科书都会向初学者指出,要交换两个变量的值,必须要引入一个中间变量。但如果使用异或,就可以节约一个变量的存储空间: 设有A,B两个变量,存储的值分别为a,b,则以下三行表达式将互换他们的值 表达式 (值) :
A=A XOR B (a XOR b)
B=B XOR A (b XOR a XOR b = a)
A=A XOR B (a XOR b XOR a = b)
类似地,该运算还可以应用在加密,数据传输,校验等等许多领域。