Python 中的 10 進位制整數的補數
假設我們有十進位制數。我們需要獲取該十進位制數的二進位制補數,然後再將其轉回十進位制並返回結果。因此,如果該數字為 20,則其二進位制形式為 10100,補數為 01011,在十進位制中為 11
要解決此問題,我們將遵循以下步驟:
- s := 數字 n 的二進位制字串
- sum := 0 且 num := 1
- 針對 s 中的每個元素 i(逆方向)
- 如果 i = ‘b’,則返回 sum
- 否則當 i = ‘0’ 時,則 sum := sum + num
- num := num * 2
示例
讓我們檢視以下實現以獲得更好的理解:
class Solution(object): def bitwiseComplement(self, N): s = str(bin(N)) sum = 0 num = 1 for i in s[::-1]: if i == "b": return sum elif i =="0": sum+=num num*=2 ob1 = Solution() print(ob1.bitwiseComplement(20))
輸入
20
輸出
11
廣告
資料結構
網路技術
關係型資料庫
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP