异或运算符
异或运算符的三个特点
- 0 ^ 0 = 0,0 ^ 1 = 1 0异或任何数 = 任何数
- 1 ^ 0 = 1,1 ^ 1 = 0 1异或任何数 = 任何数取反
- 任何数异或自己 = 把自己置0
算法逻辑
加密和解密算法
假设X为明文,Y为密钥,Z为密文。因为X ^ 0 = X, Y ^ Y = 0, ( X ^ Y) ^ Z = X ^ (Y ^ Z),所以X ^ Y ^ Y = X ^ ( Y ^ Y ) = X ^ 0 = X.
交换两个整数的值而不必用第三个参数
int a = 1;
int b = 2;
a = a ^ b;
b = b ^ a;