int Add(int a, int b) { if (b == 0) return a; //没有进位的时候完成运算 int sum, carry; sum = a ^b; //完成第一步没有进位的加法运算 carry = (a&b) << 1; //完成第二步进位并且左移运算 return Add(sum, carry); //递归,相加 } 程序员面试宝典第4版40页。