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

更新日期:28-Apr-2020

2K+ 瀏覽次數

開啟你的 職業生涯

完成課程並獲得認證

開始學習
廣告
© . All rights reserved.