Task 47. Разница в количестве битов
UniLecsЗадача: написать функцию, ктр определит кол-во битов, ктр нужно изменить, чтобы из целого числа А получить целое число B.
Например, A = 71 (или 1000111), B = 15 ( или 0001111)
1000111
0001111
Нужно изменить 2 бита в А, чтобы получить число B.
Идея: вспоминаем операцию XOR, каждая единица результата XOR соот-т биту, ктр не совпадает в числах А и B. Поэтому, чтобы получить кол-во несовпадающих битов в числах, нужно посчитать число единиц в A XOR B.

Есть еще одно улучшение для этой задачи: можно заменить постоянный сдвиг XOR для проверки бита на инвертирование младшего разряда.
Следующая операция XOR = XOR & (XOR - 1) сбрасывает младший ненулевой бит числа XOR.

https://gist.github.com/unilecs/76f5109b0a6b27d9b273a18e74d76d41
Тест: