不用加减乘除做加法
// 非递归实现
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); }