程式設計訓練 兩整數之和

2021-10-08 18:38:53 字數 630 閱讀 2177

不使用運算子 + 和 -​​​​​​​,計算兩整數 ​​​​​​​a 、b ​​​​​​​之和。

示例 1:

輸入: a = 1, b = 2

輸出: 3

示例 2:

輸入: a = -2, b = 3

輸出: 1

看清題目要求為不可以使用+和-,於是可以想到計算機組成原理學到的有關知識來解決,如下說明:

我們知道二進位制數的加法有以下規則ab

result00

0011

1011

10相當於a和b異或

然後考慮進製,當且僅當兩個運算元相同位上的值都是1時,才會發生進製c,即c= a & b,注意到進製項需要加到下一位上,進製結果需要向左移動一位。

注意:c語言中int型最高位為符號位,如果使用int型直接運算,當出現負數的時候計算結果會發生溢位的情況

371 兩整數之和

不使用運算子 class solution def getsum self,a int,b int int mask 0x100000000 整型最大值 max int 0x7fffffff min int 0x80000000 while b 0 計算進製 carry a b 1 取餘範圍限制在 ...

leetcode 兩整數之和

不使用運算子 和 計算兩整數 a b 之和。示例 1 輸入 a 1,b 2 輸出 3 示例 2 輸入 a 2,b 3 輸出 1 通過觀察異或運算的真值表,與加法的真值表特別地像。需要注意的是異或只看本位,加法可能需要進製。從而用到與運算 1 0 1 1 1 1 0 1 0 0 0 0 與運算可以很好...

371 兩整數之和

題目 不使用運算子 和 計算兩整數a b之和。示例 示例1 輸入 a 1,b 2 輸出 3 思路 位運算 可以發現,在位運算中的加法 不考慮進製1 就是異或運算的結果。但是僅僅有異或運算是不夠的,我們還需要知道,何時發生了進製,這就需要用到 運算 注意到 運算得到的進製1需要移1位來得到實際真實的進...