2010-07-14 105 views

回答

2

你在找什么叫做Hamming distance。下面是我如何在C/C++中计算它:

unsigned hamdist(unsigned x, unsigned y) 
{ 
    unsigned dist = 0; 
    unsigned val = x^y; 

    // Count the number of set bits (Knuth's algorithm) 
    while(val) 
    { 
    ++dist; 
    val &= val - 1; 
    } 
    return dist; 
} 
4

这将是异或b中的总体数量(1位数)

1

您正在寻找Hamming distance。这是两个数字不同的位数,它给出了您的位数需要改变,以便使一个数字进入另一个。

相关问题