Каков наиболее эффективный способ вычисления разницы в битах между двумя целыми числами без знака (например, расстояние Хэмминга) в рубине?
Например, , У меня целое число a = 2323409845 и b = 1782647144.
Их двоичные представления:
a = 10001010011111000110101110110101
b = 01101010010000010000100101101000
Разница в битах между a и b равна 17 ..
Я могу выполнить с ними логическую операцию XOR, но это будет дайте мне другое целое число! = 17, тогда мне пришлось бы перебирать двоичное представление результата и подсчитывать количество единиц.
Каков наиболее эффективный способ вычисления разницы в битах?
изменение ответа для вычисления разности битов последовательностей многих целых чисел? Например. даны 2 последовательности беззнаковых целых чисел:
x = {2323409845,641760420,509499086....}
y = {uint,uint,uint...}
Каков наиболее эффективный способ вычисления разницы в битах между двумя последовательностями?
Вы бы перебирали последовательность, или есть более быстрый способ вычислить разницу во всей последовательности сразу?