異或法:可以完成對整型變量的交換。
交換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