1 //汉明距离——用位运算 2 #include<iostream> 3 using namespace std; 4 5 int hammingDistance(int x, int y) { 6 //将x与y进行异或运算,在进行循环与操作,不为0,则result++; 7 int result=0; 8 int a; 9 a= x ^ y;//异或运算 10 for(int i=0;i<32;i++){ 11 if((a & 1 )!=0){ 12 result++; 13 } 14 a>>= 1;//判断一位,a向右移一位; 15 } 16 return result; 17 } 18 int main() 19 { 20 int a,b,y; 21 //a=2,b=1 22 cin>>a>>b; 23 y = hammingDistance(a,b); 24 cout<<y<<endl; 25 return 0; 26 }
2的二进制:10
1的二进制:01
汉明距为不同值的总和数。为2