Bits überprüfen?
-
Hallo,
wie kann ich denn einzelne Bits einer Zahl überprüfen?
z.b. ich habe die hexzahl 0x11 -> 00010001
wie kann ich nun bei dieser zahl, diese 8 bits nacheinander abprüfen ob sie 0 oder 1 sind?
Danke und Gruß
-
Hatten wir erst:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-147179-and-highlight-is-flag.html
-
hi,
hatte den thread auch gefunden aber ich komme mit diesem bsp. und der funktion von david nicht klar...
kann das jemand ganz simple erklären?
-
Informier dich am besten mal über google zu:
bitoperatoren (&,|,^,~,<<,>>) und bitmasken.
Schau dir am besten zu jedem operator ein einfaches beispiel an,
dann wird dir die funktionsweise schnell klar,
und auch wofür bitmasken gebraucht werden.
-
int flags = 0xF1; for(int i=0;i<8*sizeof(int);++i) if(flags&(1<<i)!=0) cout<<"Bit "<<i<<" gesetzt\n";mit "1<<x" erhältst du einen Wert, bei dem nur das x-te Bit gesetzt ist. Der & Operator lässt nur die Bits gesetzt, die in beiden Operanden vorkommen - in dieser Anwendung gibt er also entweder 0 (Bit i nicht gesetzt) oder 1<<i (Bit i gesetzt) zurück, das kannst du auswerten und weiterverwenden.
-
okay. danke für eure hilfe.
bin schon ein bischen durchgestiegen bei deinem bsp. cstoll. danke