两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。 给你两个整数 x和 y,计算并返回它们之间的汉明距离。
public class HamingDistance {
/**
* 两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。
* 给你两个整数 x和 y,计算并返回它们之间的汉明距离
*/
public static void main(String[] args) {
int x = 4; // 0100
int y = 12; // 1100
int distance = hamingDistance(x, y);
System.out.println("distance: " + distance);
}
private static int hamingDistance(int x, int y) {
int distance = 0;
for (int xor = x ^ y; xor != 0; xor &= xor - 1) {
distance++;
}
return distance;
}
}