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.