Benutzung von Bitmasken
Bitmasken werden benutzt, wenn zur Anzeige oder Auswertung von Status oder Interlock Flags, Integer (Ganzzahlen) benutzt werden und deren Einzelbits ausgewertet werden sollen.
Folgende Schreibweise wird auf dieser Seite benutzt:
hexadezimale Zahlen beginnen mit '0x'
Zahlen in bitweiser Scheibweise beginnen mit '0b'
bitweises UND (bitwise AND): '&'
Bitwise AND mit einer Bitmaske wird gerne verwendet, wenn man prüfen möchte, ob Bits in einem Integer gesetzt sind. Die Bitmaske ist dabei der Term, der angibt, welche Bits ausgewertet werden.
Dabei wird das Ergebnis des bitwise AND wie folgt generiert:
- bei allen Bits, bei dem die Maske NULL ist, ist das Ergebnis NULL
- bei allen Bits, bei dem die Maske EINS ist, ist das Ergebnis wie das Bit der Variable selbst.
Beispiel
0xAA & 0x7 = 0x2 bzw. 0b10101010 WERT & 0b00000010 BITMASKE ---------- 0b00000010 ERGEBNIS: 0x2
Anschließend kann der so erzeugte Wert verglichen werden, bei Einzelbits kann man auf gleich/ungleich NULL vergleichen.
Sind in der Bitmaske mehr als ein Bit benutzt (ungleich (1,2,4,8,16..) ), so muss mit der Bitmaske verglichen werden.
Siehe auch: /svn/global/examples/bitmask.xml