不使用四則運算符求和

2021-09-25 22:50:20 字數 590 閱讀 3481

寫乙個函式,求兩個整數之和,要求在函式體內不得使用+、-、*、/四則運算符號。

思路:

首先分析人民利用十進位制是如何做的: 比如5+7=12,分三步走

第一步:相加各位的值,不算進製,得到2。

第二步:計算進製值,得到10. 如果這一步的進製值為0,那麼第一步得到的值就是最終結果。

第三步:重複上述兩步,只是相加的值變成上述兩步的得到的結果2和10,得到12。

同樣我們可以用三步走的方式計算二進位制值相加: 5的二進位制101,7的二進位制111

第一步:相加各位的值,不算進製,得到010,二進位制每位相加就相當於各位做異或操作,101^111。

第二步:計算進製值,得到1010,相當於各位做與操作得到101,再向左移一位得到1010,(101&111)<<1。

第三步重複上述兩步, 各位相加 010^1010=1000,進製值為100=(010&1010)<<1。

繼續重複上述兩步:1000^100 = 1100,進製值為0,跳出迴圈,1100為最終結果。

class solution 

return num1;

}};

js四則運算符

只有當加法運算時,其中一方是字串型別,就會把另乙個也轉為字串型別。其他運算只要其中一方是數字,那麼另一方就轉為數字。並且加法運算會觸發三種型別轉換 將值轉換為原始值,轉換為數字,轉換為字串。template section class p 10 el button type danger click...

兩個整數求和,不能使用 , , , 四則運算符

必備知識點 兩個數的和為不考慮進製情況下兩個數的和加上進製 兩個數異或結果為不考慮進製的情況下給兩個數求和,如5 7 2 兩個數相與 再左移一位結果為兩個數相加後的進製,如 5 7 1 10 將上述兩個值相加則為兩個數相加結果為兩個數求和,如5 7 5 7 1 2 10 12,相當於輸入前兩個的結果...

使用運算子過載實現複數的四則運算

程式 include using namespace std class complex 使用初始化表初始化複數 complex double r,double i real r imag i complex operator complex c2 複數的加法 complex operator co...