# Hamming distance between two Integers

• Difficulty Level : Easy
• Last Updated : 09 Jun, 2022

Given two integers, the task is to find the hamming distance between two integers. Hamming Distance between two integers is the number of bits that are different at the same position in both numbers.
Examples:

```Input: n1 = 9, n2 = 14
Output: 3
9 = 1001, 14 = 1110
No. of Different bits = 3

Input: n1 = 4, n2 = 8
Output: 2```

Approach:

1. Calculate the XOR of two numbers.
2. Count the number of set bits.

Below is the implementation of above approach:

## C++

 `// C++ implementation of above approach``#include ``using` `namespace` `std;` `// Function to calculate hamming distance``int` `hammingDistance(``int` `n1, ``int` `n2)``{``    ``int` `x = n1 ^ n2;``    ``int` `setBits = 0;` `    ``while` `(x > 0) {``        ``setBits += x & 1;``        ``x >>= 1;``    ``}` `    ``return` `setBits;``}` `// Driver code``int` `main()``{``    ``int` `n1 = 9, n2 = 14;``    ``cout << hammingDistance(9, 14) << endl;` `    ``return` `0;``}` `// This code is contributed by Sania Kumari Gupta (kriSania804)`

## C

 `// C implementation of above approach``#include ` `// Function to calculate hamming distance``int` `hammingDistance(``int` `n1, ``int` `n2)``{``    ``int` `x = n1 ^ n2;``    ``int` `setBits = 0;` `    ``while` `(x > 0) {``        ``setBits += x & 1;``        ``x >>= 1;``    ``}` `    ``return` `setBits;``}` `// Driver code``int` `main()``{``    ``int` `n1 = 9, n2 = 14;``    ``printf``(``"%d\n"``, hammingDistance(9, 14));` `    ``return` `0;``}` `// This code is contributed by Sania Kumari Gupta (kriSania804)`

## Java

 `// Java implementation of above approach``class` `GFG``{` `// Function to calculate hamming distance``static` `int` `hammingDistance(``int` `n1, ``int` `n2)``{``    ``int` `x = n1 ^ n2;``    ``int` `setBits = ``0``;` `    ``while` `(x > ``0``)``    ``{``        ``setBits += x & ``1``;``        ``x >>= ``1``;``    ``}` `    ``return` `setBits;``}` `// Driver code``public` `static` `void` `main(String[] args)``{``    ``int` `n1 = ``9``, n2 = ``14``;``    ``System.out.println(hammingDistance(n1, n2));``}``}` `// This code is contributed by Bilal`

## Python3

 `# Python3 implementation of above approach` `# Function to calculate hamming distance``def` `hammingDistance(n1, n2) :` `    ``x ``=` `n1 ^ n2``    ``setBits ``=` `0` `    ``while` `(x > ``0``) :``        ``setBits ``+``=` `x & ``1``        ``x >>``=` `1``    ` `    ``return` `setBits` `if` `__name__``=``=``'__main__'``:``    ``n1 ``=` `9``    ``n2 ``=` `14``    ``print``(hammingDistance(``9``, ``14``))` `# this code is contributed by Smitha Dinesh Semwal`

## C#

 `// C# implementation of above approach``class` `GFG``{` `// Function to calculate``// hamming distance``static` `int` `hammingDistance(``int` `n1, ``int` `n2)``{``    ``int` `x = n1 ^ n2;``    ``int` `setBits = 0;` `    ``while` `(x > 0)``    ``{``        ``setBits += x & 1;``        ``x >>= 1;``    ``}` `    ``return` `setBits;``}` `// Driver code``static` `void` `Main()``{``    ``int` `n1 = 9, n2 = 14;``    ``System.Console.WriteLine(hammingDistance(n1, n2));``}``}` `// This code is contributed by mits`

## PHP

 ` 0)``    ``{``        ``\$setBits` `+= ``\$x` `& 1;``        ``\$x` `>>= 1;``    ``}` `    ``return` `\$setBits``;``}` `// Driver code``\$n1` `= 9;``\$n2` `= 14;``echo``(hammingDistance(9, 14));` `// This code is contributed by Smitha``?>`

## Javascript

 ``

Output

`3`

Note: No. of set bits can be count using __builtin_popcount() function.

Approach 2:

1. Calculate the maximum of both the numbers.

2.Check the set bits for both at each position.

## C++

 `#include ``using` `namespace` `std;``int` `hammingDistance(``int` `x, ``int` `y)``{``    ``int` `ans = 0;``    ``int` `m = max(x, y);``    ``while` `(m) {``        ``int` `c1 = x & 1;``        ``int` `c2 = y & 1;``        ``if` `(c1 != c2)``            ``ans += 1;``        ``m = m >> 1;``        ``x = x >> 1;``        ``y = y >> 1;``    ``}``    ``return` `ans;``}``int` `main()``{``    ``int` `n1 = 4, n2 = 8;``    ``int` `hdist = hammingDistance(n1, n2);``    ``cout << hdist << endl;``    ``return` `0;``}`

## Java

 `/*package whatever //do not write package name here */` `import` `java.io.*;` `class` `GFG {``    ``static` `int` `hammingDistance(``int` `x, ``int` `y)``{``    ``int` `ans = ``0``;``    ``int` `m = Math.max(x, y);``    ``while` `(m>``0``) {``        ``int` `c1 = x & ``1``;``        ``int` `c2 = y & ``1``;``        ``if` `(c1 != c2)``            ``ans += ``1``;``        ``m = m >> ``1``;``        ``x = x >> ``1``;``        ``y = y >> ``1``;``    ``}``    ``return` `ans;``}``    ` `// Drivers code``public` `static` `void` `main(String args[])``{``    ``int` `n1 = ``4``, n2 = ``8``;``    ``int` `hdist = hammingDistance(n1, n2);``    ``System.out.println(hdist);``}``}` `// This code is contributed by shinjanpatra`

## Python3

 `# Python3 code for the same approach``def` `hammingDistance(x, y):` `   ``ans ``=` `0``   ``m ``=` `max``(x, y)``   ``while` `(m):``      ``c1 ``=` `x & ``1``      ``c2 ``=` `y & ``1``      ``if` `(c1 !``=` `c2):``         ``ans ``+``=` `1``      ``m ``=` `m >> ``1``      ``x ``=` `x >> ``1``      ``y ``=` `y >> ``1``   ``return` `ans` `# driver program``n1 ``=` `4``n2 ``=` `8``hdist ``=` `hammingDistance(n1, n2)``print``(hdist)` `# This code is contributed by shinjanpatra`

## C#

 `// C# code to implement the approach` `using` `System;` `public` `class` `GFG``{``  ` `    ``// Function that return the hamming distance``    ``// between x and y``    ``static` `int` `hammingDistance(``int` `x, ``int` `y)``    ``{``        ``int` `ans = 0;``        ``int` `m = Math.Max(x, y);``      ` `        ``// checking the set bits``        ``while` `(m > 0) {``            ``int` `c1 = x & 1;``            ``int` `c2 = y & 1;``            ``if` `(c1 != c2)``                ``ans += 1;``            ``m = m >> 1;``            ``x = x >> 1;``            ``y = y >> 1;``        ``}``        ``return` `ans;``    ``}` `    ``// Driver code``    ``public` `static` `void` `Main(``string``[] args)``    ``{``        ``int` `n1 = 4, n2 = 8;``        ``// Function call``        ``int` `hdist = hammingDistance(n1, n2);``        ``Console.WriteLine(hdist);``    ``}``}` `// This code is contributed by phasing17`

## Javascript

 ``

Output

`2`

My Personal Notes arrow_drop_up