首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >不使用加减运算符,如何实现两个数相加?

不使用加减运算符,如何实现两个数相加?

作者头像
Yuzuriha
发布2026-01-14 15:55:32
发布2026-01-14 15:55:32
60
举报
文章被收录于专栏:Linux网络Linux网络

题目链接:371. 两整数之和 - 力扣(LeetCode)

可能会些朋友第一次遇见这个题比较困惑,真能不用加减法得到两个数的和吗?这简直是太匪夷所思了,真的有这种方法吗?欸!🤓☝️有的朋友有的。

算法解析

在这种不能使用加减运算的情况下,我们优先考虑到使用位运算来解决。

首先为大家介绍两个位运算符:异或 : ^ 与 : &​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

当与(进位)的结果为0时,代表不再进位了。此时异或(无进位相加)的结果就是最终的计算结果

代码实现

代码语言:javascript
复制
class Solution {
public:
    int getSum(int a, int b)
    {
        while(b)//当与的结果为0时,异或(a)的结果就是最终计算的结果
        {
            int x=a^b;
            int y=(a&b)<<1;

            a=x;
            b=y;
        }
        return a;
    }
};
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2026-01-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 算法解析
  • 代码实现
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档