漢明距離
漢明距離是使用在數(shù)據(jù)傳輸差錯控制編碼里面的跃惫,漢明距離是一個概念,它表示兩個(相同長度)字對應(yīng)位不同的數(shù)量艾栋,我們以d(x,y)表示兩個字x,y之間的漢明距離爆存。對兩個字符串進行異或運算,并統(tǒng)計結(jié)果為1的個數(shù)蝗砾,那么這個數(shù)就是漢明距離先较。
C 算法實現(xiàn)
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);
}
解釋
首先將兩個數(shù)字進行“^”操作携冤,然后計算得出的結(jié)果中,非零值的個數(shù)闲勺。
得出的結(jié)果曾棕,就是“漢明距離”。