使用位运算实现加法

int add(int a, int b)
{
        int i = (a&b)<<1;
        int j = a^b;

        if(i == 0)
        {
                return j;
        }
        else
                return add(j, i);
}

a + b = a^b + ((a&b)<<1)

a^b 表示不进位的位和

(a&b)<<1 表示向左移1为,表示进位

posted on 2017-01-06 15:14  川洋  阅读(338)  评论(0编辑  收藏  举报