题目链接https://leetcode.cn/problems/hamming-distance/submissions/
解法一:直接把int转成bitset,一位一位对比
class Solution {
public:
int hammingDistance(int x, int y) {
bitset<31> a(x);
bitset<31> b(y);
int distance=0;
for(int i=30;i>=0;i--){
if(a[i]!=b[i]) distance++;
}
return distance;
}
};
解法二:计算x异或y,再看结果中1的个数
class Solution {
public:
int hammingDistance(int x, int y) {
int c=x^y;
int distance=0;
while(c!=0){
if(c&1==1) distance++;
c>>=1;
}
return distance;
}
};