简单-371-两整数之和

LeetCode商城的鼠标垫好心动,争取暑假努力刷题搞到手。

 此题并非题1两数之和。而是用位运算实现计算机加法。 LeetCode371

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

无论是十进制还是二进制,加法都可以看成无进位加法与进位加法的和,当两数相加无需进位时,无进位加法就是目标值。

相对应的,无进位加法指异或操作,进位加法指位与运算。

public int getSum(int a, int b) {
        int carrier;
        while(b!=0){
            carrier = (a & b) << 1;  //进位
            a = a ^ b;  //无进位
            b = carrier;
        }
        return a;
    }

题解链接

原文地址:https://www.cnblogs.com/faded828x/p/13236455.html