汉明距离的算法及运用

1、什么是汉明距离

汉明距离,从二进制方面来看,就是两个等长字符串的二进制对应 bit 不相同的位个数,例如

1
2
1011
1000 //汉明距离为2
1
2
1100
1010 //汉明距离是2

2.计算汉明距离的算法

 思路:

  01.将两个给定的数进行 异或(^)运算后保存在变量a,汉明距离就是a的二进制中1的个数

  02.当a不为0时,和0x01进行按位与(&)运算。如果结果为1,则统计变量加1

  03.将a右移一位,重复第02步

代码

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


作者:anxixiaomu
来源:CSDN
原文:https://blog.csdn.net/anxixiaomu/article/details/62231096
版权声明:本文为博主原创文章,转载请附上博文链接!