不用加减乘除做加法

//   非递归实现
int
Add (int num1, int num2){ int sum, carry; do{ sum = num1 ^ num2; // 做异或运算 carry = (num1 & num2) << 1; // 进位 num1 = sum; num2 = carry; }while(num2 != 0); // 直到进位为0 return num1; }
// 递归实现

int add(int a, int b){
    if (b == 0){
        return a;
    }
    int sum = a ^ b;    //  做异或
    int carry = (a & b) << 1; // 与、移位
    return add(sum, carry);
}
原文地址:https://www.cnblogs.com/simplepaul/p/7702454.html