ex2
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
可以用位操作来解。比如考虑5+6
5 –>101 6–>110
step1: (5&6)<<1=1000 =>8
5^6=011=>3
step2:(8&3)<<1=0————————>跳出循环
8^3=1011=11——————————>结果
所以写出
int Add(int num1,int num2){
return num2 ? Add(num1^num2, (num1&num2)<<1) : num1;
}