Gesetzte Bits eines Bytes zählen
-
Ich suche eine geschickte Möglichkeit, die anzhal der gesetzten Bits in einem
Byte zu untersuchen, insbesondere ob mehr als eines gesetzt ist.Bsp:
f( 00100000 ) = wahr f( 00000000 ) = wahr f( 00000100 ) = wahr f( 11000001 ) = falsch f( 00010010 ) = falsch
Die einzige Variante, die ich gefunden habe, beschränkt sich auf das ansprechen
und prüfen jedes einzelnden Bits, solange, bis ich zwei gesetzte Bits gefunden habe.Schöner wäre natürlich eine Funktion, die sich ohne Schleife mit wenigen bitweise-Operationen
auskäme. Kann man so eine überhaupt konstruieren?
-
dann wird dich das hier aber freuen:
#include <iostream> using namespace std; int main(){ for(int i=0;i<10;++i) if(i&i-1) cout<<i<<endl; }
-
Danke!