In information theory, the Hamming distance between two strings of equal length is the number of positions at which the corresponding symbols are different. In other words, it measures the minimal number of substitutions need to change one string into the other, or the minimal number of mistakes that could have transformed one string into the other.

COMING SOON!

```
/**
The Hamming distance between two integers is the number of positions at which
the corresponding bits are different.
Given two integers x and y, calculate the Hamming distance.
Input: x = 1, y = 4
Output: 2
Explanation:
1 (0 0 0 1)
4 (0 1 0 0)
↑ ↑
The above arrows point to positions where the corresponding bits are different
*/
#include <iostream>
int hamming_distance(int x, int y)
{
// XOR will set only those bits in z which are different in x and y
int z = x ^ y;
// Now just count set bits in z.
int count = 0;
while (z)
{
count += (z % 2);
z >>= 2;
}
return count;
}
int main()
{
int x = 4;
int y = 1;
std::cout << "Hamming distance between " << x << " and " << y << " is : "
<< hamming_distance(x, y) << std::endl;
}
```