hammingDistance

hammingDistance

题目描述:

给定两个数字,要求返回这两个数的二进制数对应位上不同的位置的个数。

例子:

具体描述见LeetCode461

解题思路:

具体思路是我们对输入的两个数进行异或操作,然后计算结果中1的个数即可。至于计算数字中1的个数,我们利用flag开始不断地左移,然后和结果进行与操作就可以判断每个位置上的情况了。

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
public:
int hammingDistance(int x, int y) {
int num = x ^ y;
int count = 0;
int flag = 1;
while(flag){
if (num & flag)
count++;
flag = flag << 1;
}
return count;
}
};