Python 中十进制整数的补码

pythonserver side programmingprogramming更新于 2025/11/2 8:12:17

假设我们有一个十进制数。我们必须获取二进制数的补码,然后再将其转换为十进制并返回结果。因此,如果数字为 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

相关文章


有用资源