位运算-371.两整数之和-力扣(LeetCode)

一、题目解析

1、不使用+,-,运算符号,计算两整数之和

二、算法原理

解法:位运算

^异或操作符,除了a^a=0,a^0=a,(a^b)^c=(a^c)^b之外,^也叫做无进位加法

a^b计算无进位加法,(a&b)<<1计算进位(<<:为左移操作符,将所有二进制数,从右往左移动一位,空位加0)

三、代码示例

cpp 复制代码
class Solution {
public:
    int getSum(int a, int b)
    {
        while(b != 0)
        {
            int c = (a&b)<<1;
            a ^= b;
            b = c;
        }
        return a;
    }
};

看到最后,如果对您有所帮助,还请点赞、收藏和关注,我们下期再见!