按位运算符和标志
&、|、^、~、<< 和 >> 仅作用于 64 位 Integer,语义与 C 相同,不适用于其他任何类型。它们主要用于组合标志常量、测试内置函数返回值中的位,以及拆解颜色值。
| 任务 | 表达式 |
|---|---|
| 组合标志 | FileNotify.FileName | FileNotify.LastWrite |
| 测试标志 | (mask & FileNotify.Size) != 0 |
| 设置标志 | mask = mask | flag; |
| 清除标志 | mask = mask & ~flag; |
| 切换标志 | mask = mask ^ flag; |
| 测试第 n 位 | ((value >> n) & 1) == 1 或 (value & (1 << n)) != 0 |
| 偶数 / 奇数 | (n & 1) == 0 |
拆解 0xRRGGBB | r = (c >> 16) & 0xFF; g = (c >> 8) & 0xFF; b = c & 0xFF; |
按键已按下(来自 KeyboardGetKeyState) | (state & 0x8000) != 0。Win32 SHORT 的最高位会进行符号扩展,因此 state < 0 同样有效。 |
| 按键已切换(Caps Lock 等) | (state & 1) != 0 |
DisplayGetPixelColorFromPoint 返回打包为 Integer 的 0xRRGGBB;当该点不在任何显示器上时,返回 -1。