不使用运算符 +
和-
,计算两整数a
、b
之和。
示例:
若 a = 1 ,b = 2,返回 3。
思路:
不使用 + 和 -, 那就要站在二进制的角度来考虑使用与或非、异或等相关操作。
详细按位操作请看另一篇文章:JavaScript按位相关操作。
/**
* @param {number} a
* @param {number} b
* @return {number}
*/
var getSum = function(a, b) {
var temp;
while (a !== 0) {
temp = (a & b) << 1; // a & b 得到所有需要进位的地方,左移一位完成进位。
b = a ^ b; // a ^ b 得到a与b不一样的地方,即不需要进位的地方
a = temp;
}
return b;
};