面试题47:不用+、-、×、÷做加法

题目:写一个函数,求两个整数的之和,要求在函数体内不得使用+、-、×、÷。

异或解决当前位,与和左移解决进位

 1 int Add(int num1, int num2)
 2 {
 3     int sum, carry;
 4     do
 5     {
 6         sum = num1 ^ num2;
 7         carry = (num1 & num2) << 1;
 8 
 9         num1 = sum;
10         num2 = carry;
11     }
12     while(num2 != 0);
13 
14     return num1;
15 }

 

posted on 2016-07-20 15:41  已停更  阅读(213)  评论(0编辑  收藏  举报