汉明距离:
例如,两个二进制数:1011 和 1000 的 HD(汉明距离)为 2。
10000 和 01111 的 HD 为 5。
这是代码:
有人可以向我解释一下吗?
谢谢!
short HammingDist(short x, short y)
{
short dist = 0;
char val = x^y;// what's the meaning?
while(val)
{
++dist;
val &= val - 1; // why?
}
return dist;
}