在Python中检查其中一个数字是否是另一个的补数

假设我们有两个数字x和y。我们必须检查这两个数字之一是否为另一个的1的补码。我们都知道二进制数的1的补码是将所有位从0翻转到1或从1翻转到0。

因此,如果输入类似于x = 9,y = 6,则输出将为True,因为二进制表示形式是x = 1001和y = 0110,它们是互补的。

示例

让我们看下面的实现以更好地理解-

def all_one(n):
   if n == 0:
      return False;
   if ((n + 1) & n) == 0:
      return True
   return False
def solve(x, y):
   return all_one(x ^ y)
x = 9
y = 6
print(solve(x, y))

输入

9, 6
输出结果
True

猜你喜欢