So, hab das Programm mal geschrieben (sogar mit Kommentar :) ) !
Das Programm ist in C++ geschrieben.
#include<iostream>
using namespace std;
int main( void )
{
int zahl, zaehler, potenz = 1; //Deklaration der benötigten Variablen
zahl = zaehler = 0;
cout<<"Zahl eingeben: "; // Einlesen der auf die Anzahl der
gesetzten Bits zu untersuchenden Zahl
cin >> zahl;
while( (zahl-potenz) > 0 ) potenz *= 2; // die größtmögliche 2er-Potenz
herausfinden, die in die
// eingegebene Zahl hineinpasst
potenz /= 2; // Potenz auf die nächst niedrigere 2er-Potenz verringern, da
// der letzte Schleifen-Durchlauf die Potenz nochmal
(einmal zu oft) erhöht hat
while(zahl >= 0 && potenz != 0)
{
if ( (zahl - potenz) >= 0 ) // wenn die Zahl minus der 2er-Potenz
größer oder gleich 2 ist
{ // ,dann subtrahiere die 2er-Potenz von der Zahl und erhöhe den
zahl -= potenz; // Zähler (den Zähler der gesetzten Bits)
um 1
zaehler++;
}
potenz /= 2; // Potenz auf die nächst niedrigere 2er-Potenz verringern
}
cout<<"Es sind "<