# Hamming Distance

Leetcode Easy

## Problem

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.

**Note:**
0 ≤ `x`

, `y`

< 231.

**Example:**

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

## Solution

```
class Solution {
public int hammingDistance(int x, int y) {
int diff = x ^ y;
int hammingDist = 0;
// Count the number of 1's in the bit string
while (diff != 0) {
hammingDist += diff & 1;
diff >>>= 1;
}
return hammingDist;
}
}
```

## Why it works

Using xor (^) will give us a bitstring that has a 1 in all of the places where the bits are different. From there we just need to count the number of 1’s in the string to get the hamming distance. We do that by checking if the least significant bit is one, and then moving to the next bit.