int add_no_arithmetic(int a, int b)
{
if(b==0) return a;
return add_no_arithmetic((a^b),(a&b)<<1);
}
转化为二进制进行计算
a^b : 只计算相加后不需要进位的运算
(a&b)<<1: 只计算相加后需要进位的运算,并进
int add_no_arithmetic(int a, int b)
{
if(b==0) return a;
return add_no_arithmetic((a^b),(a&b)<<1);
}
转化为二进制进行计算
a^b : 只计算相加后不需要进位的运算
(a&b)<<1: 只计算相加后需要进位的运算,并进