Я пытаюсь найти количество перекрывающихся 1 битов между двумя заданными числами.
Например, учитывая 5
и 6
:
5 // 101
6 // 110
Существует 1перекрывающийся 1 бит (первый бит)
У меня следующий код
#include <iostream>
using namespace std;
int main() {
int a,b;
int count = 0;
cin >> a >> b;
while (a & b != 0) {
count++;
a >>= 1;
b >>= 1;
}
cout << count << endl;
return 0;
}
Но когда я ввел 335
и 123
, он вернул 7
, но я думаю, что это не правильно
Может кто-нибудь увидеть проблему с моим кодом?