C++:汉明距离的实现
1、汉明距离定义:从二进制上讲是:两个等长字符串的二进制对应位不相同的位个数;例如:“toned”和”roses”的汉明距离是3。1011101和1001001的汉明距离是2。2173896和2233796的汉明距离是3。

3、汉明距离实现思路:①将两个给定的数进行异或(^)运算后保存在变量a中,则汉明距离就是二进制a中1的个数;②当a不为0时,和0x01进行按位与(&)运算,如果结果为1,则统计变量加一③将a右移一位,重复第02步

5、计算两个整数的二进制汉明距离;Wegner (1960)给出了一种计葡搌寸笆算汉明权重(即计算给定整数的二进制表示中1的邗锒凳审个数)的算法,通过反复查找并消除最低的非零位来实现。基于此使用C语言实现的计算汉明距离的算法如下://while循环的次数就是汉明距离;//计算汉明距离unsigned int value = a^b;int GetHammingWeight(unsigned int value){ if(value == 0) return 0; int a = value; int b = value -1; int c = 0; int count = 1; while(c = a & b) { count++; a = c; b = c-1; } return count;}
