汉明距离
汉明距离是使用在数据传输差错控制编码里面的,汉明距离是一个概念,它表示两个(相同长度)字对应位不同的数量,我们以d(x,y)表示两个字x,y之间的汉明距离。对两个字符串进行异或运算,并统计结果为1的个数,那么这个数就是汉明距离。
C 算法实现
int count_one_bits( int value)
{
int ones;
for (ones = 0; value != 0; value = value >> 1) {
if (value % 2 != 0) {
ones = ones + 1;
}
}
return ones;
}
int hammingDistance(int x, int y) {
int tmpInt = x ^ y;
return count_one_bits(tmpInt);
}
解释
首先将两个数字进行“^”操作,然后计算得出的结果中,非零值的个数。
得出的结果,就是“汉明距离”。