Bitwise
bewerkingen op bit-niveau
Bitwise shift
unsigned short getal{0b0010'1101'0000'1001};
resultaat = static_cast<unsigned short>(getal << 2);
resultaat = static_cast<unsigned short>(getal >> 2);
static_cast<unsigned short>()
is nodig omdat C++ van resultaat
standaard een integer
maakt ipv een unsigned
short
.
Als getal al een int
is, dan is static_cast<>()
niet
nodig
Bitwise Operator | Omschrijving |
---|---|
font &= bold; | Bitwise-AND |
font |= bold; | Bitwise-OR |
font ^= bold; | Bitwise-XOR (Exclusive OR) |
font &= ~ bold; |
Bitwise-Complement (ook Bitwise-NOT genoemd) |
Voorbeelden
const unsigned int rood{0xFF0000}; // Rood (RGB)
const unsigned int blauw{0x0000FF};// Blauw (RGB)
const unsigned int wit{0xFFFFFF}; // Wit (RGB)
Bitwise Complement
unsigned int kleur = ~rood;
(kleur = 0x00FFFF}; // Cyaan
Bitwise AND
unsigned int kleur = rood & blauw;
(kleur = 0x000000); // zwart
Bitwise OR
unsigned int kleur = rood | blauw;
(kleur = 0xFF00FF); roze
Bitwise XOR
unsigned int kleur = rood ^ wit;
(kleur = 0xFF0000); // rood
unsigned int flags{0xFF}; // Variabele flags
unsigned int bit1masker{0x1}; // Selecteer bit 1
unsigned int bit6masker{0b100000}; // selecteer bit 6
unsigned int bit20masker{1u << 19}; // selecteer bit 20
Selecteer bit 1 van flags
flags & bit1masker;
Selecteer bit 6 van flags
flags & bit6masker;
Schakel bit 6 van flags uit
flags &= ~bit6masker;
Schakel bit 20 van flags om (aan naar uit, of uit naar aan)
flags |= bit20masker;