位運算符直接操作二進制位,適用於權限掩碼、標誌位存儲、高效集合運算等場景。
| 符號 | 名稱 | 範例 | 結果 (二進制→十進制) |
|---|---|---|---|
| | 按位或 OR | 10 | 15 | 1010 | 1111 = 1111 → 15 |
& | 按位與 AND | 10 & 15 | 1010 & 1111 = 1010 → 10 |
^ | 按位異或 XOR | 10 ^ 15 | 1010 ^ 1111 = 0101 → 5 |
<< | 左移 | 1 << 2 | 0001 → 0100 → 4 |
>> | 右移 | 16 >> 2 | 10000 → 00100 → 4 |
~ | 按位取反 NOT | 5 & ~1 | 0101 & ...1110 = 0100 → 4 |
~1 會將 64 位全翻轉,最低位變 0,其餘變 1,故 5 & ~1 清除最低位。SELECT BIN(~1) 可查看 64 位二進制表示。permission & MASK 判斷是否擁有權限。x << n 相當於 x * 2^n;x >> n 相當於 x / 2^n (整數除法)。flags ^ BIT 翻轉特定位。