天天看點

不使用算術運算符實作加法運算

不使用算術運算符實作加法運算

version one

在不使用算術運算符的前提下實作數的加法運算,首先應該想到的是用位運算符,當所有數的二進制數相加不會産生進位的情況下,傳回的二進制數就是真值。當相加的結果産生進位時,将兩個數進行相與操作,并對兩個數進行異或操作并左移一位,重複上述模拟進位的過程,直到不出現進位。

int aplusb(int a, int b) {
        // write your code here, try to do it without arithmetic operators.
        if ( a == )
        {
            return b;
        }
        if( b == )
        {
            return a;
        }
        else 
        {
            int c = a ^ b;
            int d = (a & b)<<;
            return aplusb(c,d);
        }
    }
           

繼續閱讀