Bitweise Operatoren und Flags
&, |, ^, ~, << und >> arbeiten mit C-Semantik auf 64-Bit-Integern und auf nichts
anderem. Sie dienen vor allem dazu, Flag-Konstanten zu kombinieren, Bits in Werten zu prüfen, die
integrierte Funktionen zurückgeben, und Farben zu zerlegen.
| Aufgabe | Ausdruck |
|---|---|
| Flags kombinieren | FileNotify.FileName | FileNotify.LastWrite |
| Flag prüfen | (mask & FileNotify.Size) != 0 |
| Flag setzen | mask = mask | flag; |
| Flag löschen | mask = mask & ~flag; |
| Flag umschalten | mask = mask ^ flag; |
| Bit n prüfen | ((value >> n) & 1) == 1 oder (value & (1 << n)) != 0 |
| Gerade / ungerade | (n & 1) == 0 |
0xRRGGBB zerlegen | r = (c >> 16) & 0xFF; g = (c >> 8) & 0xFF; b = c & 0xFF; |
Taste gedrückt gehalten (aus KeyboardGetKeyState) | (state & 0x8000) != 0. Das oberste Bit des Win32-SHORT wird vorzeichenerweitert, daher funktioniert auch state < 0. |
| Taste umgeschaltet (Feststelltaste usw.) | (state & 1) != 0 |
DisplayGetPixelColorFromPoint gibt 0xRRGGBB in einen Integer gepackt zurück oder -1, wenn der
Punkt auf keinem Monitor liegt.