异或法:可以完成对整型变量的交换。
交换a, b的值:
a = a^b;
b = a^b;
a = a^b;
不使用±运算符计算a + b的值
递归法:
function add(a, b) {
let tmp = a ^ b;
let tmp1 = (a & b) << 1;
if(tmp1 == 0) {
return tmp;
}else {
return test_add(tmp, tmp1);
}
}
非递归法
function add(a, b) {
let tmp = 0;
while(b > 0) {
tmp = a ^ b;
b = (a & b) << 1;
a = tmp;
};
return tmp;
}
END