两整数之和
题目
给你两个整数 a 和 b ,不使用 运算符 + 和 - ,计算并返回两整数之和。
示例 1:
1 | 输入:a = 1, b = 2 |
示例 2:
1 | 输入:a = 2, b = 3 |
提示:
-1000 <= a, b <= 1000
解题
不使用+、-算术运算符,通过位运算可以实现加法:
1 | // 0+0=0,0+1=1,1+0=1,1+1=0(进位) |
这里使用了位运算中的异或(^)和与(&)操作来模拟不带进位的加法。
具体步骤如下:
(a & b) << 1计算出所有需要进位的bit,将其左移一位,得到进位值(因为只有1和1与运算之后才是1)。a ^= b对 a 和 b 进行异或操作,相当于不考虑进位的加法。b = carry将进位应用于下一轮相加。
这样,通过循环,直到没有进位为止,最终得到了两数之和。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 翼同学的个人博客!
评论
ValineDisqus





