The between two integers is the number of positions at which the corresponding bits are different.
Given two integersxandy, calculate the Hamming distance.
Note:
0 ≤x,y< 2^31.
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: bit manipulation
class Solution(object):
def hammingDistance(self, x, y):
"""
:type x: int
:type y: int
:rtype: int
"""
count = 0
# compute x XOR y
# to get difference between x and y in bit
ret = x ^ y
# compute how many of the bits is 1
for i in range(32):
count += (ret >> i) & 1
return count