位操作 (Bit Manipulation)#
位操作是直接對二進位位進行的運算,在演算法最佳化和底層開發中極為重要。
為什麼要學習位操作?#
電腦底層完全基於二進位運算,直接使用位操作能:
- 避免進位制轉換開銷
- 執行速度極快(硬體原生支援)
- 節省記憶體空間
常用位運算子速查#
Kotlin 的位運算子不是 C/Python 那樣的符號(
&、|、^、~、<<、>>),而是Int/Long上的中綴函式(infix functions)。
| 運算子 | 名稱 | 規則 |
|---|---|---|
and | AND | 兩位都為 1 才為 1 |
or | OR | 有一位為 1 就為 1 |
xor | XOR | 相異為 1,相同為 0 |
inv() | NOT | 0 變 1,1 變 0 |
shl | 左移 | 左移 n 位 = 乘以 2ⁿ |
shr | 算術右移 | 補符號位,≈ 除以 2ⁿ 向下取整 |
ushr | 邏輯右移 | 高位補 0(無號右移) |
熟記三個核心技巧:
x and 1:判斷奇偶x and (x - 1):清除最低位的 1x and -x:取得最低位的 1
跨倉庫導讀#
- 對應 LeetCode 練習:Bit Manipulation ↗