371. 两整数之和
题目描述
不使用运算符 + 和 - ,计算两整数a、b之和。
示例 1:
输入: a = 1, b = 2
输出: 3
示例 2:
输入: a = -2, b = 3
输出: 1
思路
- a ^ b:代表a和b的没有进位的和
- (a & b)<<1:代表a、b的和的进位
在下面的实现中,b代表进位,就是要继续添加的数
实现
class Solution {
public int getSum(int a, int b) {
int temp = 0;
while(b != 0) {
temp = a ^ b;
b = (a & b) << 1;
a = temp;
}
return a;
}
}
本文详细解析了如何在不使用+和-运算符的情况下,计算两个整数a和b的和。通过位操作实现无进位加法与进位处理,递归直至无进位,最终得到两数之和。示例包括正负数相加的情况。
291

被折叠的 条评论
为什么被折叠?



