跳至主要內容

65-不用加减乘除做加法

daipeng小于 1 分钟

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

只能使用位运算了。

 public int add(int a, int b) {
        int carry = 0;
        do{
            int sum = a ^ b; // 可以实现相加的结果,但是会忽略进位
            carry = (a & b) << 1; // 都是1的位会产生进位
            a = sum;
            b = carry;
        }while(carry != 0);
        return a;
    }