位运算
371. 两整数之和
题目
给你两个整数
a
和b
,不使用 运算符+
和-
,计算并返回两整数之和。示例 1:
输入: a = 1, b = 2 输出: 3
示例 2:
输入: a = 2, b = 3 输出: 5提示:
-1000 <= a, b <= 1000
题解
javascript
/**
* @param {number} a
* @param {number} b
* @return {number}
*/
var getSum = function (a, b) {
// 示例1 2 + 2 10 10
// 示例2 1 + 2 01 10
while (b !== 0) {
/**
* 有值就是有进位
* 1. & 两个位都为1时,结果才为1
* 2. << 左移进位
*/
const carry = (a & b) << 1;
/**
* 1. ^ 两个位相同为0,不同为1
*/
a = a ^ b; // 示例1 00 示例2 11
b = carry; // 示例1 100 示例2 00
}
return a; // 示例1 100 示例2 11
};