Operadores bit a bit e sinalizadores
&, |, ^, ~, << e >> funcionam em Integers de 64 bits com a semântica de C, e em nada mais.
Servem principalmente para combinar constantes de sinalizadores, testar bits em valores retornados por
funções internas e desempacotar cores.
| Tarefa | Expressão |
|---|---|
| Combinar sinalizadores | FileNotify.FileName | FileNotify.LastWrite |
| Testar um sinalizador | (mask & FileNotify.Size) != 0 |
| Ativar um sinalizador | mask = mask | flag; |
| Desativar um sinalizador | mask = mask & ~flag; |
| Inverter um sinalizador | mask = mask ^ flag; |
| Testar o bit n | ((value >> n) & 1) == 1 ou (value & (1 << n)) != 0 |
| Par / ímpar | (n & 1) == 0 |
Desempacotar 0xRRGGBB | r = (c >> 16) & 0xFF; g = (c >> 8) & 0xFF; b = c & 0xFF; |
Tecla pressionada (de KeyboardGetKeyState) | (state & 0x8000) != 0. O bit alto do SHORT do Win32 é estendido com sinal, então state < 0 também funciona. |
| Tecla alternada (Caps Lock e similares) | (state & 1) != 0 |
DisplayGetPixelColorFromPoint retorna 0xRRGGBB empacotado em um Integer, ou -1 quando o ponto não
está em nenhum monitor.