位運算
371. 兩整數之和
題目
給你兩個整數
a
和b
,不使用 運算符+
和-
,計算并返回兩整數之和。示例 1:
輸入: a = 1, b = 2 輸出: 3
示例 2:
輸入: a = 2, b = 3 輸出: 5提示:
-1000 <= a, b <= 1000
題解
/*** @param {number} a* @param {number} b* @return {number}*/
var getSum = function (a, b) {// 示例1 2 + 2 10 10// 示例2 1 + 2 01 10while (b !== 0) {/*** 有值就是有進位* 1. & 兩個位都為1時,結果才為1* 2. << 左移進位*/const carry = (a & b) << 1;/*** 1. ^ 兩個位相同為0,不同為1*/a = a ^ b; // 示例1 00 示例2 11b = carry; // 示例1 100 示例2 00}return a; // 示例1 100 示例2 11
};