当前位置: 首页 > article >正文

【C++算法】35.位运算_两整数之和

文章目录

    • 题目链接:
    • 题目描述:
    • 解法
    • C++ 算法代码:


题目链接:

371. 两整数之和


题目描述:

cacc728251779901a2e7b563cba892d6


解法

笔试的话直接 return a+b;

接下来讲一下这题的解法:

位运算(异或运算-无进位相加)

例如:1328

13+28=41

13的二进制位a:001101

28的二进制位b:011100

a^b:010001

因为异或运算是无进位相加,所以我们要找到进位相加的部分。

44260460d8b3991e39bdb01b4a3c6cbb

只有11异或是1,如上图所示,刚好和&的运算规则一样。

7f3f16384e2edbc8b0110ab4fecc7b2c


C++ 算法代码:

class Solution 
{
    public:
    int getSum(int a, int b) 
    {
        while(b != 0)
        {
            int x = a ^ b; // 先算出无进位相加的结果
            unsigned int carry = (unsigned int)(a & b) << 1; // 算出进位
            a = x;
            b = carry;
        }
        return a;
    }
};

http://www.kler.cn/a/430045.html

相关文章:

  • 服务器登陆后有java变量
  • 探索微软 M365 安全:全方位守护数字世界
  • SQLite 命令
  • 互联网架构变迁:从 TCP/IP “呼叫” 到 NDN “内容分发” 的逐浪之旅
  • YOLOv5改进 | CARAFE提高精度的上采样方法
  • 使用 C++ 实现神经网络:从基础到高级优化
  • ViT学习笔记(二) Patch+Position Embedding阶段的详细推演与理解
  • 利用机器学习技术进行区块链交易趋势预测的研究【代码实战】
  • Vue Web开发(二)
  • 学习笔记064——如何手动将jar包导入到maven本地库
  • SpringBoot+Resilience4j实现接口限流
  • 5G CPE终端功能及性能评测(四)
  • CSS核心(上)
  • 力扣第96题 不同的二叉搜索树
  • 使用ModelArts PyCharm插件调试训练ResNet50图像分类模型
  • Leetcode688:骑士在棋盘上的概率
  • 软体机器人动态手内笔旋转研究
  • 包管理器npm, cnpm, yarn 和 pnpm 的命令
  • (iOS)响应者链在应用程序中的作用
  • Atcoder ABC382
  • word poi-tl 表格功能增强,实现表格功能垂直合并
  • C# 关于加密技术以及应用(一)
  • 《Vue进阶教程》第一课:什么是组合式API
  • 深度学习常见激活函数介绍
  • ansible学习笔记之02command模块与shell模块
  • apache的BeanUtils的Converter被相互污染覆盖问题