优选算法_两数之和_位运算_C++

一.题目解析:

两=-整数的和不用加法

算法解析:

我们知道异或是一种不进位的加法

所以我们用这种特殊的加法来代替

我们找进位就很简单了,1和1进位,&的特性就是有0就是0,就可以找到哪里是进位,进一位应该是往前一位,所以我们左移(<<1)一位.

下面我们举个例子来展现所有过程:

13+23=36,即01101+10111=100100

二.代码编写

cpp 复制代码
class Solution {
public:
    int getSum(int a, int b) {
        while(b!=0)//找不到进位了,退出
        {
            int x=(a&b)<<1;//寻找进位
            a=a^b;//不进位的加法
            b=x;
        }
        return a;
    }
};
相关推荐
昇腾CANN2 分钟前
TileLang-Ascend 算子性能优化方法与实操
开发语言·javascript·性能优化·昇腾·cann
John_ToDebug5 分钟前
WebHostView 与 TabStrip 交互机制深度解析
c++·chrome·windows
AGV算法笔记8 分钟前
CVPR 2025 最新感知算法解读:GaussianLSS 如何用 Gaussian Splatting 重构 BEV 表示?
算法·重构·自动驾驶·3d视觉·感知算法·多视角视觉
沐知全栈开发13 分钟前
ionic 手势事件详解
开发语言
lsx20240634 分钟前
Bootstrap 按钮
开发语言
qinqinzhang36 分钟前
Java 中的 IoC、AOP、MVC
java
神仙别闹37 分钟前
基于 Python 实现 BERT 的情感分析模型
开发语言·python·bert
禾叙_42 分钟前
【langchain4j】结构化输出(六)
java·开发语言
NQBJT44 分钟前
VS Code配置Python人工智能开发环境
开发语言·人工智能·vscode·python
饭小猿人1 小时前
Android 腾讯X5WebView如何禁止系统自带剪切板和自定义剪切板视图
android·java