假设我们有一个十进制数字系统。我们必须以二进制形式获取数字的补码,然后再次将其更改为十进制并返回结果。因此,如果数字为20,则二进制格式为10100,补码为01011,十进制为11
为了解决这个问题,我们将遵循以下步骤-
s:=数字n的二进制字符串
sum:= 0和num:= 1
对于s中每个元素i的反方向
如果i ='b',则返回和
否则,当i ='0'时,求和:= 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