371-两整数之和
2019-07-11 本文已影响0人
饮酒醉回忆
两整数之和
题目
不使用运算符+ 和-,计算两整数a、b之和。
示例 1:
输入: a = 1, b = 2
输出: 3
示例 2:
输入: a = -2, b = 3
输出: 1
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sum-of-two-integers
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路
不能使用加减,因此判断需要使用位运算来操作.两数相加,可以将两数先异或运算,如果没有相同的位数,则已经实现相加.如果有相同的位数,则需要将原有相同的位数进位.因此步骤需要先异或,然后与操作并向左移一位使之进位.最后直到没有相同的位数就结束
代码
class Solution {
public int getSum(int a, int b) {
while (b != 0){
int temp = a ^ b;
b = (a & b)<<1;
a = temp;
}
return a;
}
}