两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。
给你两个整数 x
和 y
,计算并返回它们之间的汉明距离。
JAVA(辗转相除):
class Solution {
public int hammingDistance(int x, int y) {
int xory=x^y;
int count=0;
while(xory!=0){
if(xory%2==1){
++count;
}
xory/=2;
}
return count;
}
}
JAVA(参考338比特位计数):
class Solution {
public int hammingDistance(int x, int y) {
int distance=0;
for(int xory=x^y;xory!=0;xory&=(xory-1)){
distance++;
}
return distance;
}
}