不用加号求加法运算
1、计算出不变位
2、计算出进位(要左移)
3、求加
int aplusb(int a, int b)
{
//1、a,b进行异或运算,计算出不变的位
//2、计算出进位(求与)
//3、相加即可
if (b == 0)
return a;
int temp1 = a^b;
int temp2 = (a&b) << 1;//可能产生进位
return aplusb(temp1, temp2);
}
不用加号求加法运算
1、计算出不变位
2、计算出进位(要左移)
3、求加
int aplusb(int a, int b)
{
//1、a,b进行异或运算,计算出不变的位
//2、计算出进位(求与)
//3、相加即可
if (b == 0)
return a;
int temp1 = a^b;
int temp2 = (a&b) << 1;//可能产生进位
return aplusb(temp1, temp2);
}
>