Potrzebuję napisać program, który wypisze ile liczb z przedziału od a do b posiada dokładnie jedną jedynkę w systemie dwójkowym. Dodatkowo pytań o to jest z. Jedyne co udało mi się zrobić to wypisać te liczby w systemie dwójkowym. Nie wiem natomiast jak sprawdzić po kolei każdy zapis binarny czy ma on tylko jedną jedynkę. Mam coś takiego:
#include <iostream>
using namespace std;
int z;
int a, b, x;
string wynik;
int main()
{
cin >> a >> b;
x = b - a + 1;
while(x < b)
{
for(int i; a > 0; i++)
{
wynik = (a % 2 ? "1" : "0") + wynik;
a /= 2;
}
a++;
x++;
cout << wynik << endl;
}
return 0;
}