メインコンテンツまでスキップ

ビット演算子とフラグ

&、|、^、~、<<、>> は、C 言語と同じセマンティクスで 64 ビットの Integer に対して動作し、それ以外には動作しません。 主な用途は、フラグ定数の組み合わせ、組み込み関数が返す値のビットのテスト、色の分解です。

作業式
フラグを組み合わせる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 は 0xRRGGBB を Integer にまとめて返します。その点がどのモニター上にもない場合は -1 を返します。