/// a^b:异或运算,不进位加法运算。
        /// a&b:与运算,真真为真,(a&b)<<1:相同的进位
        /// </summary>
        /// <param name="a"></param>
        /// <param name="b"></param>
        /// <returns></returns>
        static int aplusb(int a, int b)
        {
            if (b == 0) return a;
            int nocarry = a ^ b;
            int carry = (a & b) << 1;
            return aplusb(nocarry, carry);
        }

 

相关文章: