两整数之和 -- 位运算

发布时间:2024年01月05日

?个人主页:Lei宝啊?

愿所有美好如期而遇?


本题链接

力扣(LeetCode)

输入描述

输入两个要相加的数,a和b

输出描述

返回a和b的和,这里其实直接return a+b; 直接就过了,但是人题目要求还是给点面子~

算法分析

不许使用加法和减法,一般就是使用位运算了,而我们也知道异或又可以理解成二进制数无进位相加,我们再去找到进位,两者相加,不许使用加法,则重复该过程,直到进位为0,我们看图:

解题源码

class Solution {
public:
    int getSum(int a, int b) 
    {
        while(b)
        {
            int temp = a ^ b;

            b = (a & b) << 1;
            a = temp;
        }
        return a;
    }
};

文章来源:https://blog.csdn.net/m0_74824254/article/details/135409674
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。