查看源代码 按位运算 (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