int add(int a,int b) { if(a==0) return b; if(b==0) return a; int m=a^b; // 二进制加法,应当是异或加上与运算 int n=a&b; n=n<<1; if(m&0x1==1) // 为了防止两个数都不收敛于零。事实证明,完全可以收敛 { m=m&~0x1; return 0x1|add(m,n); } return add(m,n); }
posted on 2013-07-26 21:18 dyc0113 阅读(119) 评论(0) 编辑 收藏 举报