题目
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。
给出两个整数 x 和 y,计算它们之间的汉明距离。
注意:
0 ≤ x, y < 231.
思路
可以通过位运算判断 位运算二进制中有多少个1判断
位运算得到的是一个十进制数
看这个十进制数的二进制表示中有多少个1
移位运算符
x >> 1 相当于x右移一位 即 x/2
x << 1 相当于x左移一位 即 x*2
代码
class Solution {
public int hammingDistance(int x, int y) {
int xor = x ^ y;
int res = 0;
while(xor != 0){
if(xor %2 == 1){
res++;
}
xor = xor >> 1;
}
return res;
}
}