海明距离:
例如,二进制数1011和1000的海明距离为2。
10000和01111的海明距离为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;
}
^
是按位异或 http://en.wikipedia.org/wiki/Exclusive_or&
是按位与。 - Cory Kramer