您的位置:首页 > 新闻 > 热点要闻 > 小程序制作公司选卓越华网天下_如何做网站服务_微信群推广_百度云盘搜索

小程序制作公司选卓越华网天下_如何做网站服务_微信群推广_百度云盘搜索

2025/4/19 4:04:21 来源:https://blog.csdn.net/lirendada/article/details/147144093  浏览:    关键词:小程序制作公司选卓越华网天下_如何做网站服务_微信群推广_百度云盘搜索
小程序制作公司选卓越华网天下_如何做网站服务_微信群推广_百度云盘搜索

文章目录

  • 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;}
};

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com