题目:写一个函数,求两个整数之和,要求在函数体内不得使用+,-,*,/四则混合运算。
分析:利用位运算进行加法
实现:
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;
}相关问题:不使用新的变量,交换两个变量的值。比如有两个变量a,b,我们希望交换他们的值。有两种办法。
1.基于加减法的方法:
a=a+b;
b=a-b;
a=a-b;
2.基于异或运算的方法:
a=a^b;
b=a^b;
a=a^b;
















