不使用運算子+
和-
,計算兩整數a
、b
之和。
示例:若 a = 1 ,b = 2,返回 3。
calculate the sum of two integers a and b, but you are not allowed to use the operator+
and-
.
example:
given a = 1 and b = 2, return 3.
public static int getsum(int a, int b)
return result;
}
1.按位取與(&)
兩值按二進位制位進行 「與」運算
規則:0&0=0;0&1=0;1&0=0;1&1=1
舉個栗子: a = 5 ,b = 3
a:0101
b:0011
r:0001
2.按位取或(|)
兩值按二進位制位進行 「或」運算
規則:0|0=0;0|1=1;1|0=1;1|1=1
舉個栗子: a = 5 ,b = 3
a:0101
b:0011
r:0111
3.按位取異或(^)
兩值按二進位制位進行 「異或」運算
規則:0^0=0;0^1=1;1^0=1;1^1=0
舉個栗子: a = 5 ,b = 3
a:0101
b:0011
r:0110
4.左移運算子「<<」及右移運算子「>>」
左移運算子" << n ":
將乙個數的二進位制位全部向左移n位,最左邊一位捨棄,右邊補0。
舉個栗子:
a = 5
a<<1
0101 -> 1010
左移一位後,a = a * 2 = 10;
右移運算子">>":
將乙個數的二進位制位全部向右移n位,最右邊一位捨棄,左邊補0。
舉個栗子:
a = 5
a>>1
0101 -> 0010
左移一位後,a = a / 2 = 2;
如有錯誤,歡迎指出,十分感謝。
Leetcode 371 兩整數之和
不使用運算子 和 計算兩整數 a b 之和。示例 1 輸入 a 1,b 2 輸出 3 示例 2 輸入 a 2,b 3 輸出 1 class solution return res 極端情況比較能說明問題 a 0111 1111 b 0000 0001 a b 0111 1110 a b 1 0000...
LeetCode 371 兩整數之和
不使用運算子 和 計算兩整數 a b 之和。示例 1 輸入 a 1,b 2輸出 3示例 2 輸入 a 2,b 3輸出 1先把a和b按位 與 再左移一位就得到了進製的結果,把該結果記為carry。然後把a和b異或,得到的是不算進製的加法結果,然後把該結果賦給a,把carry賦給b,判斷當b大於0時,說...
LeetCode 371 兩整數之和
不使用運算子 和 計算兩整數 a b 之和。示例 1 輸入 a 1,b 2輸出 3示例 2 輸入 a 2,b 3輸出 1解題思路 一,兩整數之和可以表示為進製數與不進製和的和。進製數可以使用兩者按位與且左移一位表示 不進製和可以使用兩者按位異或表示。二,python對於負數的處理需要手動模擬32in...