首页 > 代码库 > 371. Sum of Two Integers

371. Sum of Two Integers

Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -.

Example:
Given a = 1 and b = 2, return 3.

思路:xor相加存无carray的sum,and左移一位为carry,两者相加即可。

11 + 11

11^11=00 , (11&11)<<1=110 

00^110=110

之后总结一下bit的几种常见用法。

参考discussion,自己再实现一遍!

public class Solution {    public int getSum(int a, int b) {        if(b==0)        {            return a;        }        int sum=a^b;        int carry=a&b;        return getSum(sum,carry<<1);    }}

 

371. Sum of Two Integers