Flags aus einer Bitkette herauslesen
-
Hi, ich habe in einem Grundlagenbuch mit mit den Bitweisen Operatoren vertraut gemacht. Schön und gut, ich wieß, wie ich geziehlt Bits setzen kann durch AND, OR, XOR usw. nun stehe ich aber vor einem Problem:
Ich habe 2 Variablen, die bestimmte Werte besitzen. Und aus diesen Werten möchte ich alle Flags herauslesen können.
#define FLAG_A 0x000800 #define FLAG_B 0x000400 #define FLAG_C 0x000200 #define FLAG_D 0x000080 #define FLAG_E 0x000040 #define FLAG_F 0x000020Wenn ich nun ne Variable mit dem Wert
int iVal = 0x000840habe, so ist ja FLAG_E und FLAG_A gesetzt. Wie kann ich nun jede einzelne Flag aus der iVal herauslesen? Ich stehe auf dem Schlauch, denn ich weiß nicht, mit welchen und wie ich mit den Bitweisen Operatoren die Flags rauslesen kann.
Danke schonmal mfg
-
Schlicht und einfach mit bitweisem UND. Alle Flags durchgehen. Ist Flag && Wert ungleich 0, so ist das Flag gesetzt.
-
Die Lösung war so einfach, dass es schon peinlich ist. :<
Danke für die Hilfe.