按位 | 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