【面试题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(12, 13) << endl; return 0; } |