基础分析参见:http://blog.csdn.net/fjqcyq2/article/details/45251381
同样两个数相加2458+8457,用10进制表示的结果与二进制表示的结果是一样的。
那么在10进制中,2458+8457的相加过程是怎样的呢?
以上是10进制实现加法的过程,2进制的过程与此一致,循环相加不带进位值和进位值,直至进位全为0,此时便得到加法结果。
- int Add2(int a, int b)
- {
- if(0 == b)
- return a;
- int cxor = a^b;
- int cand = a&b;
- return Add2(cxor, cand<<1);
- }