Maneira mais eficiente de calcular a distância de hamming em rubi?

m Ruby, qual é a maneira mais eficiente de calcular a diferença de bits entre dois números inteiros não assinados (por exemplo, a distância de hamming

Eg, tenho o número inteiro a = 2323409845 eb = 1782647144.

Suas representações binárias são:

a = 10001010011111000110101110110101
b = 01101010010000010000100101101000

A diferença de bits entre o a & b é de 17 anos.

Eu posso fazer um XOR lógico neles, mas isso me dará um número inteiro diferente! = 17, então eu precisaria iterar através da representação binária do resultado e somar o número de 1s.

Qual é a maneira mais eficiente de calcular a diferença de bits?

Agora, a resposta muda para o cálculo da diferença de bits de sequências de muitas ints? Por exemplo. dadas 2 sequências de números inteiros não assinados:

x = {2323409845,641760420,509499086....}
y = {uint,uint,uint...}

Qual é a maneira mais eficiente de calcular a diferença de bits entre as duas seqüência

Você itera pela sequência ou existe uma maneira mais rápida de calcular a diferença em toda a sequência de uma só ve