两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。
给出两个整数 x
和 y
,计算它们之间的汉明距离。
输入: x = 1, y = 4 输出: 2 解释: 1 (0 0 0 1) 4 (0 1 0 0) ↑ ↑ 上面的箭头指出了对应二进制位不同的位置。
思路:使用异或运算符^ 对两个整数计算 得到一个整数 求该整数的每一位二进制为0还是为1 如果为1 自增一个
代码:
class Solution {
public int hammingDistance(int x, int y) {
int k = x^y;
int diff=0;
while(k!=0){
if(k%2==1){
diff++;
}
k=k/2;
}
return diff;
}
}