leetcode-位运算
位运算
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
};