檢視原始碼 Bitwise (Elixir v1.16.2)
一組針對位元執行計算的函式。
所有位元函式僅對整數運作;否則會引發 ArithmeticError
。函式 band/2
、bor/2
、bsl/2
和 bsr/2
也有各自的運算子:&&&/2
、|||/2
、<<</2
和 >>>/2
。
防護
所有位元函式都可以在防護中使用
iex> odd? = fn
...> int when Bitwise.band(int, 1) == 1 -> true
...> _ -> false
...> end
iex> odd?.(1)
true
此模組中的所有函式都由編譯器內聯。
摘要
防護
位元 AND 運算子。
算術左位元移位運算子。
算術右位元移位運算子。
計算其引數的位元 AND。
計算引數的位元 NOT。
計算其引數的位元 OR。
計算算術左位元移位的結果。
計算算術右位元移位的結果。
計算其引數的位元 XOR。
位元 OR 運算子。
防護
位元 AND 運算子。
計算其引數的位元 AND。
允許在防護測試中使用。由編譯器內聯。
範例
iex> 9 &&& 3
1
算術左位元移位運算子。
計算算術左位元移位的結果。
允許在防護測試中使用。由編譯器內聯。
範例
iex> 1 <<< 2
4
iex> 1 <<< -2
0
iex> -1 <<< 2
-4
iex> -1 <<< -2
-1
算術右位元移位運算子。
計算算術右位元移位的結果。
允許在防護測試中使用。由編譯器內聯。
範例
iex> 1 >>> 2
0
iex> 1 >>> -2
4
iex> -1 >>> 2
-1
iex> -1 >>> -2
-4
計算其引數的位元 AND。
允許在防護測試中使用。由編譯器內聯。
範例
iex> band(9, 3)
1
計算引數的位元 NOT。
允許在防護測試中使用。由編譯器內聯。
範例
iex> bnot(2)
-3
iex> bnot(2) &&& 3
1
計算其引數的位元 OR。
允許在防護測試中使用。由編譯器內聯。
範例
iex> bor(9, 3)
11
計算算術左位元移位的結果。
允許在防護測試中使用。由編譯器內聯。
範例
iex> bsl(1, 2)
4
iex> bsl(1, -2)
0
iex> bsl(-1, 2)
-4
iex> bsl(-1, -2)
-1
計算算術右位元移位的結果。
允許在防護測試中使用。由編譯器內聯。
範例
iex> bsr(1, 2)
0
iex> bsr(1, -2)
4
iex> bsr(-1, 2)
-1
iex> bsr(-1, -2)
-4
計算其引數的位元 XOR。
允許在防護測試中使用。由編譯器內聯。
範例
iex> bxor(9, 3)
10
位元 OR 運算子。
計算其引數的位元 OR。
允許在防護測試中使用。由編譯器內聯。
範例
iex> 9 ||| 3
11