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

【位运算】两整数之和

文章目录

  • 371. 两整数之和
  • 解题思路:位运算

在这里插入图片描述

371. 两整数之和

371. 两整数之和

​ 给你两个整数 ab不使用 运算符 +- ,计算并返回两整数之和。

示例 1:

输入:a = 1, b = 2
输出:3

示例 2:

输入:a = 2, b = 3
输出:5

提示:

  • -1000 <= a, b <= 1000

解题思路:位运算

​ 既然不用 +- 号,那么八成就是使用位运算操作了,我们在前面总结位运算的时候说过,异或 ^ 操作的一个功能就是【无进位相加】,也就是二进制的无进位相加,所以我们只需要找到这个进位,就能做到【有进位相加】了,也就是加法操作!

​ 而要找到进位,就只有按位与 & 操作能做到了,因为二进制只有 11 才能有进位,那么我们只要这种情况,对应的就是按位与 & 操作!

​ 总结一下,就是使用 【异或(无进位相加)+按位与(找到进位)】就能解决这道题,只不过按位与得到的进位,需要向左挪动一位才是进位

在这里插入图片描述

class Solution {
public:
    int getSum(int a, int b) {
        while(b != 0)
        {
            int tmp = a ^ b;    // 异或操作得到无进位相加的结果
            b = ((a & b) << 1); // 按位与之后需要向左移动一位才是进位
            a = tmp;
        }
        return a;
    }
};

在这里插入图片描述

相关文章:

  • Verilog:LED呼吸灯
  • 【android bluetooth 框架分析 02】【Module详解 2】【gd_shim_module 模块介绍】
  • linux 内存踩踏导致的空指针问题分析纪要
  • 湖北建筑安全员C1证考试难度怎么样
  • Linux 第三讲 --- 基础指令(三)
  • 智能医疗辅助诊断:深度解析与实战教程
  • 免费干净!付费软件的平替款!
  • 基于 Spring Boot + Vue 的 [业务场景] 管理系统设计与实现
  • 微软VSCode 能否击败 Cursor 和 Windsurf?
  • 【仪器仪表专题】案例:怎么理解电池模拟器模拟电池内阻的功能
  • 用户登录不上linux服务器
  • AMBA-CHI协议详解(二十六)
  • docker容器安装的可道云挂接宿主机的硬盘目录:解决群晖 威联通 飞牛云等nas的硬盘挂接问题
  • 淘宝 API 接口开发最佳实践:商品详情数据抓取与错误处理方案
  • Android之JNI详解
  • IntelliJ IDEA历史版本下载安装链接
  • MCP基础学习五:MCP的优化与高级功能
  • RAG创建向量数据库:docsearch = FAISS.from_texts(documents, embeddings)
  • GGML源码逐行调试(下)
  • Linux基础3
  • 武汉高端网站定制/百度账号官网
  • 买网站空间/最新推广注册app拿佣金
  • 网站优化怎么样做/百度手机版网址
  • 做的网站 显示乱码/企业推广策划书
  • 模拟网站效果/宁波网站建设优化企业
  • 网站建设做微营销/万能bt搜索引擎