两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。
给出两个整数 x
和 y
,计算它们之间的汉明距离。
解答:
z=x xor y,求z二进制表示中1的个数。
class Solution {
public:
int hammingDistance(int x, int y) {
int distance = 0;
int z = x ^ y;
while (z) {
if (z & 1)
++distance;
z >>= 1;
}
return distance;
}
};