news 2026/5/1 7:47:22

位运算---LC371两整数之和

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
位运算---LC371两整数之和

一、题目链接

371. 两整数之和 - 力扣(LeetCode)

二、题目要求

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

示例 1:

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

示例 2:

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

三、解决

思路分析:这道题要求我们求两数之和,但是又不允许使用+-运算符,所以我们可以使用位运算来解决这道问题;本体需要使用的是异或和与位运算,在位运算中存在这样两个结论:①异或的结果是无进位相加的结果 ②相与的结果是各位的进位;只需要将两个数异或的结果与相与的结果向左移一位再相加就是最终结果,但是本体又不允许使用加减运算符,而上述的两个步骤就等同于相加,所以我们只需要循环重复这两个步骤,知道进位为零就可以了。

算法原理

①异或结果为无进位相加

任何数字都可以转成二进制,在二进制中如果两个数不相同异或结果就是1,相同就是0,相同的结果有两种“00”、“11”,“00”相加结果就是0,而11相加结果是进位1,所以该位还是0;两个不同的数字“01”,异或后=1,相加也为1,所以该位就是1;由上可知异或的结果就是无进位相加的结果。

②相与的结果就是该位的进位数

这点很简单,如果两位都为1,那么两位相加就要进1,而相与后结果就是1;如果两位中有一个为0,相加后都不需要进位,与相与结果都为0;所以说相与的结果就是该位的进位数。

注意:求出相与的结果后需要向左移一位再与相异的结果相加,因为相与的结果是该位的进位,还没进呢,向左移一位就是进了。

代码展示

int getSum(int a, int b) { while(b) { int x = a ^ b; int carry = (a & b) << 1; a = x; b = carry; } return a; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/29 17:32:55

Python 学习资源汇总手册

Python 汇总了目前python各个历史版本&#xff0c;按需获取 Linux Windows Macos Pycharm Windows Typora Typora&#xff1a;Windows、Linux、Macos按需获取

作者头像 李华
网站建设 2026/4/25 16:43:39

开题报告-二手车交易网站的设计与实现

目录 研究背景研究目标功能模块设计技术实现方案创新点预期成果 项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作 研究背景 二手车交易市场规模逐年扩大&#xff0c;但传统交易模式存在信息不对称、交易效…

作者头像 李华
网站建设 2026/4/28 3:26:08

开题报告-基于Java的停车场管理系统的设计与实现

目录 研究背景与意义系统功能概述技术选型创新点与特色预期成果 项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作 研究背景与意义 随着城市化进程加快&#xff0c;机动车数量激增&#xff0c;传统停车场管…

作者头像 李华
网站建设 2026/4/29 6:05:16

Vue3如何融合TS

Vue3 对 TS 的适配是全方位的&#xff0c;从组件定义、Props 声明到响应式数据、生命周期等都有专门的 TS 语法&#xff0c;下面我会按开发中最常用的场景逐一讲解&#xff1a; 一、基础&#xff1a;组件的 TS 写法&#xff08;setup 语法糖&#xff09; Vue3 推荐使用 <s…

作者头像 李华
网站建设 2026/5/1 7:22:31

AI在企业并购估值中的应用与挑战

AI在企业并购估值中的应用与挑战 关键词:AI、企业并购估值、机器学习、数据驱动、应用挑战 摘要:本文深入探讨了AI在企业并购估值领域的应用与挑战。首先介绍了研究的背景、目的、预期读者和文档结构,明确了相关术语。接着阐述了AI与企业并购估值的核心概念及其联系,通过示…

作者头像 李华