两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。
给你两个整数 x
和 y
,计算并返回它们之间的汉明距离。
class Solution {
public:
int hammingDistance(int x, int y) {
int ret = x^y; //异或剩下1的个数就是二进制位不同的位置的数目
int ans = 0; //记录1的个数,每次不同都加一个1
while(ret){ //每一次运算消去一个1,直到为0终止循环
ret&=(ret-1);
ans++;
}
return ans; //输出异或所有位数之后不同的个数
}
};