通过异或运算交换两个整数的值

时间:2022-10-19 23:20:44

参考链接:http://bing-zz.iteye.com/blog/1123252

1.交换两个整数可是使用临时变量(这种方法适用于任何类型),如

// Javascript代码
function swap(a, b) {
var temp = a;
a = b;
b = temp;
}

2.还可以使用异或运算进行交换(只能是整型)。异或运算有两个特点: (1)一个数异或本身恒等于0;(2)一个数异或0恒等于本身。

//Javascript代码
function swap(a, b) {
a = a ^ b; // 以a为临时变量
b = a ^ b; // b=a^b => b=(a^b)^b => a^(b^b) => a
a = a ^ b; // a=a^b => a=a^(a^b) => (a^a)^b => b
}