capypad
0 Tage Serie
c / intermediate
Snippet

Bitweise Flag-Manipulation

Bitweise Operatoren werden verwendet, um mehrere boolesche Flags in einem einzigen Integer zu speichern, was sehr speichereffizient und schnell ist.

snippet.c
c
1
2
3
4
5
6
7
8
#define READ (1 << 0)
#define WRITE (1 << 1)
 
unsigned char permissions = 0;
permissions |= READ;
if (permissions & READ) {
/* logic */
}
Erklärung
1
(1 << 0)
Verschiebt das Bit 1 um 0 Positionen nach links, um eine Maske für das erste Bit zu erstellen.
2
permissions |= READ;
Verwendet den ODER-Operator, um das READ-Bit zu setzen, ohne andere Bits zu beeinflussen.
3
permissions & READ
Verwendet den UND-Operator, um zu prücfen, ob das spezifische READ-Bit aktuell gesetzt ist.