异或运算法则
1. a ^ b = b ^ a (对称性) 2. a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c; (结合性) 3. d = a ^ b ^ c 可以推出 a = d ^ b ^ c.4. a ^ b ^ a = b=a^a^b. (可交换)
异或运算的性质(i think):
1. 0^a=a, a任意整数
2.1^even=even+1;
3.1^odd=odd-1;
4. a^b=1, 其中 a、b!=1,且 a、b连续
典型应用
1、交换两个变量的值,不借用第三个变量
a=a^b;
b=a^b;
a=a^b;
2、求sum=1^2^3^4.....^n
解:2.1 如果 n为奇数,则 一共有 2^3,4^5,.....,(n-1)^n 对数满足异或性质4,则有n/2 对,即n/2个 1;所有一共有n/2+1个1 求异或;
2.2 如果n为偶数,则 一共有 2^3,4^5,.....,(n-2)^(n-1) 对数满足异或性质4,则有(n-1)/2 对,即(n-1)/2个 1;所有一共有
(n-1)/2+1个1 求异或;最后在异或n;