当前位置:   article > 正文

LeetCode 中级 - 两整数之和_leetcode 两整数之合

leetcode 两整数之合

两整数之和

不使用运算符 + 和-,计算两整数a 、b之和。

示例:

若 a = 1 ,b = 2,返回 3。

分析

这道题实际上就是在考 计算机底层是如何实现加减法的。

很明显计算机本身是不动+ - 的,它的底层是通过 异或 和 与 两个位运算来实现的,异或 是不带进位的结果, 与 是进位。

代码


class Solution {
public int getSum(int a, int b) {
//位运算实现加减法

        int res = 0;
        //不进位的加和
        int xor = a^b;

        //进位和
        int forward = (a&b)<<1;
        if(forward != 0){
            res = getSum(xor,forward);//循环处理 进位和+不进位加和
        }else {
            res = xor;
        }
        return res;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

“`

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/175658
推荐阅读
相关标签
  

闽ICP备14008679号