题目:写一个函数,求两个整数的之和,要求在函数体内不得使用+、-、×、÷。
分析:对数字进行运算,除了进行四则运算外,就只剩下位运算这条道路了。
位运算是对二进制的而言的。这里需要用到三个运算:异或、与、左移位。
代码如下:
1 int add(int num1, int num2) 2 { 3 if(num2==0) 4 return num1; 5 else 6 { 7 int sum=num1^num2; 8 int carry=(num1&num2)<<1; 9 return add(sum,carry); 10 } 11 }
具体分析可以参见: