# Check whether the two numbers differ at one bit position only

• Difficulty Level : Medium
• Last Updated : 15 Jun, 2022

Given two non-negative integers a and b. The problem is to check whether the two numbers differ at one bit position only or not.
Examples:

```Input : a = 13, b = 9
Output : Yes
(13)10 = (1101)2
(9)10 = (1001)2
Both the numbers differ at one bit position only, i.e,
differ at the 3rd bit from the right.

Input : a = 15, b = 8
Output : No```

Approach: Following are the steps:

1. Calculate num = a ^ b.
2. Check whether num is a power of 2 or not. Refer this post.

## C++

 `// C++ implementation to check whether the two ` `// numbers differ at one bit position only` `#include ` `using` `namespace` `std;`   `// function to check if x is power of 2` `bool` `isPowerOfTwo(unsigned ``int` `x)` `{` `    ``// First x in the below expression is` `    ``// for the case when x is 0` `    ``return` `x && (!(x & (x - 1)));` `}`   `// function to check whether the two numbers` `// differ at one bit position only` `bool` `differAtOneBitPos(unsigned ``int` `a,` `                       ``unsigned ``int` `b)` `{` `    ``return` `isPowerOfTwo(a ^ b);` `}`   `// Driver program to test above` `int` `main()` `{` `    ``unsigned ``int` `a = 13, b = 9;` `    ``if` `(differAtOneBitPos(a, b))` `        ``cout << ``"Yes"``;` `    ``else` `        ``cout << ``"No"``;` `    ``return` `0;` `}`

## Java

 `// Java implementation to check whether the two  ` `// numbers differ at one bit position only` `import` `java.io.*;` `import` `java.util.*;`   `class` `GFG {` `      ``// function to check if x is power of 2` `      ``static` `boolean` `isPowerOfTwo(``int` `x) ` `      ``{` `             ``// First x in the below expression is` `             ``// for the case when x is 0 ` `             ``return` `x!= ``0` `&& ((x & (x - ``1``)) == ``0``);` `      ``}`   `      ``// function to check whether the two numbers ` `      ``// differ at one bit position only ` `      ``static` `boolean` `differAtOneBitPos(``int` `a, ``int` `b)` `      ``{` `             ``return` `isPowerOfTwo(a ^ b);` `      ``} ` `      ``// Driver code` `      ``public` `static` `void` `main(String args[])` `      ``{` `             ``int` `a = ``13``, b = ``9``;` `             ``if` `(differAtOneBitPos(a, b) == ``true``)` `                 ``System.out.println(``"Yes"``);` `             ``else` `                 ``System.out.println(``"No"``);` `      ``}` `} `   `// This code is contributed by rachana soma`

## Python3

 `# Python3 implementation to check whether the two ` `# numbers differ at one bit position only`   `# function to check if x is power of 2` `def` `isPowerOfTwo( x ):`   `    ``# First x in the below expression is` `    ``# for the case when x is 0` `    ``return` `x ``and` `(``not``(x & (x ``-` `1``)))`   `# function to check whether the two numbers` `# differ at one bit position only` `def` `differAtOneBitPos( a , b ):` `    ``return` `isPowerOfTwo(a ^ b)` `    `  `# Driver code to test above` `a ``=` `13` `b ``=` `9` `if` `(differAtOneBitPos(a, b)):` `    ``print``(``"Yes"``)` `else``:` `    ``print``( ``"No"``)`   `# This code is contributed by "Sharad_Bhardwaj".`

## C#

 `// C# implementation to check whether the two ` `// numbers differ at one bit position only` `using` `System;` `class` `GFG ` `{` `    `  `    ``// function to check if x is power of 2` `    ``static` `bool` `isPowerOfTwo(``int` `x) ` `    ``{` `        ``// First x in the below expression is` `        ``// for the case when x is 0 ` `        ``return` `x != 0 && ((x & (x - 1)) == 0);` `    ``}`   `    ``// function to check whether the two numbers ` `    ``// differ at one bit position only ` `    ``static` `bool` `differAtOneBitPos(``int` `a, ``int` `b)` `    ``{` `        ``return` `isPowerOfTwo(a ^ b);` `    ``} ` `    `  `    ``// Driver code` `    ``public` `static` `void` `Main()` `    ``{` `        ``int` `a = 13, b = 9;` `        ``if` `(differAtOneBitPos(a, b) == ``true``)` `            ``Console.WriteLine(``"Yes"``);` `        ``else` `            ``Console.WriteLine(``"No"``);` `    ``}` `} `   `// This code is contributed by ihritik`

## PHP

 ``

## Javascript

 ``

Output:

`Yes`

Time Complexity: O(1).

Auxiliary Space: O(1).

My Personal Notes arrow_drop_up
Related Articles