按位 | Bitwise
一组执行位计算的宏。
这个模块中的宏有两种:命名或操作符。例如:
iex> use Bitwise
iex> bnot 1 # named
-2
iex> 1 &&& 1 # operator
1
如果您只想使用操作员或跳过它们,则可以通过以下选项:
:only_operators
- 仅包含操作员
:skip_operators
- 跳过操作员
例如:
iex> use Bitwise, only_operators: true
iex> 1 &&& 1
1
当被调用时没有选项,use Bitwise
相当于import Bitwise
。
所有按位宏都可以用于警卫中:
iex> use Bitwise
iex> odd? = fn int when band(int, 1) == 1 -> true; _ -> false end
iex> odd?.(1)
true
函数
left &&& right
中缀操作符;计算其参数的按位与
left <<< right
中缀操作符;计算算术左移位的结果
left >>> right
中缀操作符;计算算术右移位的结果
left ^^^ right
INFIX运算符;计算其参数的按位XOR
band(left, right)
计算按位及其参数的
bnot(expr)
计算其参数的按位而非其参数的值。
bor(left, right)
计算其参数的按位或
bsl(left, right)
计算算术左位移位的结果。
bsr(left, right)
计算算术右位移位的结果。
bxor(left, right)
计算其参数的按位异或。
left ||| right
INFIX运算符;计算其参数的按位或
~~~expr
前缀(一元)运算符;计算其参数的按位NOT
left &&& right (macro)
infix运算符;按位及其参数的计算。
iex> 9 &&& 3
1
left <<< right (macro)
INFIX运算符;计算算术左位移位的结果。
iex> 1 <<< 2
4
iex> 1 <<< -2
0
iex> -1 <<< 2
-4
iex> -1 <<< -2
-1
left >>> right (macro)
INFIX运算符;计算算术右位移位的结果。
iex> 1 >>> 2
0
iex> 1 >>> -2
4
iex> -1 >>> 2
-1
iex> -1 >>> -2
-4
left ^^^ right (macro)
INFIX运算符;计算其参数的按位XOR。
iex> 9 ^^^ 3
10
band(left, right) (macro)
按位及其参数计算。
iex> band(9, 3)
1
bnot(expr) (macro)
计算其参数的位数而不是其参数的位。
iex> bnot(2)
-3
iex> bnot(2) &&& 3
1
bor(left, right) (macro)
计算其参数的按位或。
iex> bor(9, 3)
11
bsl(left, right) (macro)
计算算术左位移位的结果。
iex> bsl(1, 2)
4
iex> bsl(1, -2)
0
iex> bsl(-1, 2)
-4
iex> bsl(-1, -2)
-1
bsr(left, right) (macro)
计算算术右位移位的结果。
iex> bsr(1, 2)
0
iex> bsr(1, -2)
4
iex> bsr(-1, 2)
-1
iex> bsr(-1, -2)
-4
bxor(left, right) (macro)
计算其参数的按位异或。
iex> bxor(9, 3)
10
left ||| right (macro)
infix运算符;计算其参数的按位或。
iex> 9 ||| 3
11
~~~expr (macro)
前缀(一元)运算符;计算其参数的按位NOT。
iex> ~~~2
-3
iex> ~~~2 &&& 3
1
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com