371. 两整数之和

难度简单296

不使用运算符 + 和 - ,计算两整数 a 、b 之和。

示例 1:

输入: a = 1, b = 2
输出: 3

示例 2:

输入: a = -2, b = 3
输出: 1
		// a = 1 b = 2  
        // binary num  : a= 0001  b=0010
        // first bit   : a+b = 1
        // second bit  : a+b = 1
        // sum         : a+b = 0011 = 3
        // low = a ^ b;
        // low = a & b;
        public int getSum(int a, int b) {
            if(a == 0 || b == 0){
                return a == 0 ? b  : a;
            } 
            int low = 0, carry = 0;
            while(true){
                low = a ^ b;
                carry = a & b;
                if(carry == 0) break;
                a = low;
                b = carry << 1;
            }
            return low;
        }