Hamming Distance
godavemon
davefowler at gmail.com
Fri Jun 20 01:27:58 CEST 2008
I need to calculate the Hamming Distance of two integers. The hamming
distance is the number of bits in two integers that don't match. I
thought there'd be a function in math or scipy but i haven't been able
to find one. This is my function but it seems like there should be a
faster way. I do this computation many times and speed up is
important.
def hamdist( a, b , bits = 32):
def _hamdist( x, bits):
if bits:
return (x & 1) + _hamdist(x >> 1, bits-1)
return x & 1
return _hamdist( a ^ b, bits)
Another alternative would be to convert the XOR to a binary string and
count the # of 1's.
Which would be fastest? Are there better alternatives?
Thanks!
More information about the Python-list
mailing list