题目:写一个函数,求两个整数之和,要求在函数体内不得使用+,-,*,/四则混合运算。

分析:利用位运算进行加法

实现:

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;