[leetcode] problem 461 – hamming distance

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 < 2^31.

Example

Input: x = 1, y = 4

Output: 2

1
2
3
4
Explanation:
1 (0 0 0 1)
4 (0 1 0 0)
↑ ↑

The above arrows point to positions where the corresponding bits are different.

Code

1
2
3
4
5
6
7
8
9
10
11
public int (int x, int y) {
int result = 0;
int xor = x ^ y;

while (xor != 0) {
result++;
xor &= xor - 1;
}

return result;
}