位操作 (Bit Manipulation)#

位操作是直接對二進位位進行的運算,在演算法最佳化和底層開發中極為重要。

為什麼要學習位操作?#

電腦底層完全基於二進位運算,直接使用位操作能:

  • 避免進位制轉換開銷
  • 執行速度極快(硬體原生支援)
  • 節省記憶體空間

常用位運算子速查#

Kotlin 的位運算子不是 C/Python 那樣的符號(&|^~<<>>),而是 Int/Long 上的中綴函式(infix functions)。

運算子名稱規則
andAND兩位都為 1 才為 1
orOR有一位為 1 就為 1
xorXOR相異為 1,相同為 0
inv()NOT0 變 1,1 變 0
shl左移左移 n 位 = 乘以 2ⁿ
shr算術右移補符號位,≈ 除以 2ⁿ 向下取整
ushr邏輯右移高位補 0(無號右移)

熟記三個核心技巧:

  • x and 1:判斷奇偶
  • x and (x - 1):清除最低位的 1
  • x and -x:取得最低位的 1

跨倉庫導讀#