符号化したデータがどれくらい違うかを求めるのに使える。
public static int getHammingDistance(int x1, int x2) {
// 2つの整数のXORを取った結果が違いのあるビット
int i = x1 ^ x2;
// ビット数を計算
// JDKのInteger#bitCount()より
i -= (i >> 1) & 0x55555555;
i = (i & 0x33333333) + ((i >> 2) & 0x33333333);
i = ((i >> 4) + i) & 0x0F0F0F0F;
i += i >> 8;
i += i >> 16;
return i & 0x0000003F;
}