先上题目
思路:两个整数的二进制表示形式之间,不同的位数的“数量”。
两种方式,一、先转换为二进制,逐位比较。二、先将两个整数进行^(异或,相同为零,不同为1),同时进行计数可以求出相同或不同的数量。
代码部分:
int hammingDistance(int x, int y) {
int n,temp,count=0; //count为计数变量
n=x^y;
while(n){
temp=n%2;
if(temp==1){
count++;
}
n=n/2;
}
return count;
}
注意处理数字的范围