【面试题047】不用加减乘除做加法

【面试题047】不用加减乘除做加法
题目:
    写一个函数,求两个整数之和,要求在函数体内不得使用+、-、* 、/四则运算符号。
 
思路一:
    用二进制,位移运算来模拟加法运算。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
#include <iostream>

using namespace std;

int Add(int num1, int num2)
{
    int sum, carry;
    do
    {
        sum = num1 ^ num2;

        carry = (num1 & num2) << 1;
        num1 = sum;
        num2 = carry;
    }
    while (num2 != 0);
    return num1;
}

int main()
{
    cout << Add(1213) << endl;
    return 0;
}
posted @ 2014-06-05 09:24  z陵  阅读(472)  评论(0编辑  收藏  举报