Предположим, что даны два целых числа a и b, и мы знаем, что a> b. Я хочу рассчитать, сколько операций я должен сделать на b, чтобы получить (по операции, я имею в виду, что побитовые операции изменяются бит от 1 до 0 и наоборот. Как я могу подсчитать количество операций для такого преобразования?Преобразовать одно целое в другое
2
A
ответ
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
Это будет подсчет населения (количество 1 бит) в XOR b.
1
Вы ищете Hamming distance. Это количество бит, в котором эти два номера отличаются, что дает вам количество бит, которое вы необходимо изменить для того, чтобы сделать один ряд в другой
Смежные вопросы
- 1. Как преобразовать список целых чисел в одно целое?
- 2. MATLAB: как преобразовать одно изображение в другое изображение
- 3. Список целых чисел в одно целое - Haskell
- 4. Преобразование массива строк в одно целое
- 5. C конвертировать две цифры в одно целое
- 6. Преобразовать Секундомер в целое
- 7. Преобразовать байт в целое
- 8. Почему одно преобразование элемента массива в целое число работает, а другое теперь работает?
- 9. Fade одно изображение в другое.
- 10. Как преобразовать одно целое число в два и легко преобразовать преобразование?
- 11. Как преобразовать двоичный файл в длинное целое?
- 12. Как преобразовать время в целое
- 13. Невозможно преобразовать _NSCFNumber в целое
- 14. Преобразовать пару символов в целое
- 15. Как преобразовать IntPtr в целое
- 16. Преобразовать значение Textbox в целое
- 17. Невозможно преобразовать строку в целое
- 18. C++ преобразовать * строку в целое
- 19. Преобразовать целое перечисление в строку
- 20. Преобразовать целое число в массив
- 21. Преобразовать значение в целое число
- 22. Как преобразовать строку в целое?
- 23. Как преобразовать строку в целое
- 24. преобразовать целое число в символ
- 25. преобразовать символ в целое число
- 26. преобразовать целое число в массив
- 27. sscanf преобразовать длинное целое
- 28. SQL одно условие ИЛИ другое
- 29. Утвердить одно исключение ИЛИ другое
- 30. Postgis - одно окружение содержит другое