两整数之和
发布时间:2024年01月16日
题目链接
两整数之和
题目描述
注意点
- 不使用 运算符 + 和 - ???????,计算并返回两整数之和
- -1000 <= a, b <= 1000
解答思路
- 需要用位运算来模拟加法,关键是要找到相加的和以及进位1的部分。如果不考虑进位的话,相加可以运用异或,如0001^0111的结果是0110;计算后还要考虑末尾两个1相加后进位1的部分,本次进位的部分可以根据a & b进行计算,其影响的是更上一位,所以还需要左移即(a & b) << 1,随后还要继续根据进位1的部分继续计算其结果,以此类推…
- 计算主要分为三个步骤:一是计算a和b的进位影响位置c,即(a & b) << 1;二是计算a和b不受进位影响的和,即a ^ b,并赋值给a;三是将进位影响位置c赋值给b,方便循环计算结果
代码
class Solution {
public int getSum(int a, int b) {
while (b != 0) {
int c = (a & b) << 1;
a = a ^ b;
b = c;
}
return a;
}
}
关键点
文章来源:https://blog.csdn.net/weixin_51628158/article/details/135595673
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:chenni525@qq.com进行投诉反馈,一经查实,立即删除!