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	0x000020
    

    Wenn ich nun ne Variable mit dem Wert

    int iVal = 0x000840
    

    habe, 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


  • Mod

    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. 🙂


Anmelden zum Antworten