将a和b以计算机的观点看均为二进制数,当计算机在做加法时,如果两位都是1则归零进位,如果仅有1位是1则加上当前的进位为结果,故加法的目的就是确定进位。位运算即可提供此种观点的解法。如下:
int addT(int a ,int b)
{
if (a==0)
return b;
if (b==0)
return a;
int p1=a&b;//两位都是1的位数
int p2=a^b;//两位只有1位是1的情况
p1=p1<<1;//进位
return addT(p2,p1);
}