给你两个整数 a
和 b
,不使用 运算符 +
和 -
,计算并返回两整数之和。
示例 1:
输入:a = 1, b = 2 输出:3
示例 2:
输入:a = 2, b = 3 输出:5
提示:
-1000 <= a, b <= 1000
1.将b的二进制位都加到a上
2.a^b得到的值是a+b没有进位的值,a&b 得到的值 是得到哪个每个位置进位,左移一位得到进位
3.将b的进位消耗完
class Solution { public int getSum(int a, int b) { // 需要把b的值加到a上面 // 这里有个小知识点,就是a^b得到的值是a+b没有进位的值 // a&b 得到的值 是得到哪个每个位置进位,左移一位得到进位 while(b!=0) { int t = a; a^=b; // 得到没有进位的值 b&=t; // 得到进位的位置 b<<=1; } return a; } }
欢迎大佬们关注小弟的博客https://blog.csdn.net/qq_41522089