交换两个整数常规的实现就是使用临时变量,异位运算交换两个整数不需要临时变量,其实是把临时变量与其中的一个整数结合起来了,也就是说把其中的一个整数当做临时变量来用。
交换两个整数a和b,其实就是a=b和b=a这两个操作。
a = a ^ b;
b = a ^ b; //==>b=(a^b)^b=a
a = a ^ b;// ==>a=(a^b)^a=b
原理其实和两个整数相加减来换位置是一样的。如:
a=a+b;
b=a-b;//==>b=(a+b )-b=a
a=a-b; //==>a=( a+b )-a=b