Check if one of the numbers is one’s complement of the other in Python


Suppose we have two numbers x and y. We have to check whether one of these two numbers is 1's complement of the other or not. We all know the 1's complement of a binary number is flipping all bits from 0 to 1 or 1 to 0.

So, if the input is like x = 9, y = 6, then the output will be True as the binary representations are x = 1001 and y = 0110 which are complement of each other.

To solve this, we will follow these steps −

  • z = x XOR y
  • return true when all bits in z are set, otherwise false

Example

Let us see the following implementation to get better understanding −

 Live Demo

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))

Input

9, 6

Output

True

Updated on: 19-Jan-2021

457 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements