非常教程

Elixir 1.5参考手册

按位 | Bitwise

按位 | 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
按位 | Bitwise
按位 | Bitwise 详细