当前位置:   article > 正文

不使用 + 和 - 运算符计算两整数之和_输入两个正整数 不使用+号 求出它们相加的结果

输入两个正整数 不使用+号 求出它们相加的结果

问题概述

不使用运算符 +-计算两整数之和

思考

不使用 +- ,那就只能想到用位运算来处理了。思路如下:

  • 两数进行 ^(异或运算),可以得到两个数在相同位上数值不同的相加结果
  • 两数进行 &(与运算),可以得到哪些位该进位
    • 如果与运算的结果为 0,代表两数的所有位都是不同的数值,不需要进位,那么第一步得到的结果就是最终的结果
    • 如果与运算的结果不为 0,代表有位要进位,那么需要将这个结果往左移一位
  • 重复上面两步,直到与运算结果为 0,即得到的就是正确的结果

实现代码

public int getSum(int a, int b) {
    while (b != 0) {
        int t = a^b;
        b = (a&b)<<1;
        a = t;
    }
    return a;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/175644?site
推荐阅读
相关标签
  

闽ICP备14008679号