位运算


85.不用加减乘除做加法


写一个函数,求两个整数之和,要求在函数体内不得使用 +、-、×、÷+、-、×、÷ 四则运算符号。

样例

输入:num1 = 1 , num2 = 2

输出:3

对于对二进制数进行位运算来说,将其异或就是进行无进位的运算,得出的用于进位的数字可以用两数进行相与操作得到,乘以进制即可。

代码如下:

class Solution {
public:
    int add(int num1, int num2){
        while(num2)
        {
          int m = num1^num2 ; 
        unsigned int n = ((unsigned int)num1&num2 ) << 1; 
        num1 = m ; 
        num2 = n ; 
    }
      return num1 ; 
    }
};

文章作者: 罗林
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 罗林 !
  目录