不使用加減乘除符號計算加法

2021-06-19 11:23:43 字數 519 閱讀 3588

給定兩個正整數,不使用加減乘除符號計算它們的和。

方法:例如,5+17=22,5是101,17是10001。

第一步各位相加得到的結果為10100(不考慮進製)---與異或操作相符;

第二步記下進製,為10---可用&操作來記下;

第三步把前兩步的結果相加,得到10110,轉換成十進位制正好為22.重複上述過程,直到不產生進製為止。

int add(int a,int b)

while(tmp != 0);

return sum;

}

不通過第三變數交換兩個數的值有兩種方法:

int swap(int &a,int &b)

int swap(int &a,int &b)

不使用加減乘除做加法

題目描述 寫乙個函式,求兩個整數之和,要求在函式體內不得使用 四則運算符號。解題思路 對於十進位制加法,兩數相加,首先是個位數相加,若相加結果小於10,就不用進製,直接得出結果 若相加結果大於等於10,結果就需要向前進一。例如 num1 5,num2 7 5 7 12 對於二進位制加法 第一步 相加...

演算法 不用加減乘除符號運算加法

寫乙個函式,求兩個整數之和,要求在函式體內不得使用 四則運算符號。解題思路 利用與或符號,模擬位的加法與進製。位的異或就是當前位的加法,但是沒有辦法算進製,所以,需要通過位與和左移來算進製,如果兩個都是1,那麼進製才是1。為什麼負數也能適用呢?以 9 5 為例 9 在8位暫存器的儲存二進位制 為 0...

不用加減乘除實現加法

思路 我們一直在想,求兩數之和四則運算都不能用,那還能用什麼?對數字做運算,除了四則運算之外,也就只剩下位運算了。位運算是針對二進位制的,我們就以二進位制再來分析一下前面的三步走策略對二進位制是不是也適用。5的二進位制是101,17的二進位制是10001。還是試著把計算分成三步 第一步各位相加但不計...