Related Articles

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

• Difficulty Level : Medium
• Last Updated : 13 Apr, 2021

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

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

My Personal Notes arrow_drop_up