题目:
写一个函数,求两个整数之和,要求再函数体内不得使用+、-、x、/四则运算符号。
代码实现:
int Add(int num1, int num2)
{
int sum = 0;
int carry = 0;
do
{
sum = num1 ^ num2;
carry = (num1 & num2) << 1;
num1 = sum;
num2 = carry;
} while (num2 != 0);
return num1;
}
附加:
不使用新的变量,交换两个变量的值。比如有两个变量a、b,我们希望交换它们的值。
代码实现:
void Swap(int& a, int& b)
{
a = a + b;
b = a - b;
a = a - b;
}
void Swap(int& a, int& b)
{
a = a ^ b;
b = a ^ b;
a = a ^ b;
}