Bitvektor: effizientes Auslesen von Zuständen

HPB

Erfahrenes Mitglied
Hallo,
wenn ich folgenden Bitvektor definiere, um eine gewisse Anzahl von Flags zu speichern,
Code:
typedef int Flags;
const Flags f1 = 0x1;  
const Flags f2 = 0x2;  
const Flags f3 = 0x4;  
const Flags f4 = 0x8;  
//...
dann kann ich mit einer Veroderung Werte setzten.
Code:
Flags flags = 0;
flags |= f1; //setzt f1;  --> 0001
flags |= f3; // setzt f3; --> 0101

Wie liest man jetzt aber ein Flag effizient wieder aus? Und wie setzt man Flag geschickt wieder auf 0?

Danke für eure Hilfe,
Peter
 
Hi.

Eigentlich würde man für soetwas einen Aufzählungstyp definieren:
C:
enum Flags { f1 = 1, f2 = 2, f3 = 4, f5 = 8 } flags = 0;

flags |= f3; // f3 setzen

if (flags & f3) { // f3 prüfen 
  ...
}

flags &= ~f3; // f3 auf 0 setzen.
Gruß
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: HPB
Zurück