Elixir v1.8.2 Bitwise View Source
A set of macros that perform calculations on bits.
The macros in this module come in two flavors: named or operators. For example:
iex> use Bitwise
iex> bnot(1) # named
-2
iex> 1 &&& 1 # operator
1If you prefer to use only operators or skip them, you can pass the following options:
- :only_operators- includes only operators
- :skip_operators- skips operators
For example:
iex> use Bitwise, only_operators: true
iex> 1 &&& 1
1When invoked with no options, use Bitwise is equivalent
to import Bitwise.
All bitwise macros can be used in guards:
iex> use Bitwise
iex> odd? = fn
...>   int when band(int, 1) == 1 -> true
...>   _ -> false
...> end
iex> odd?.(1)
trueLink to this section Summary
Guards
Infix operator; calculates the bitwise AND of its arguments.
Infix operator; calculates the result of an arithmetic left bitshift.
Infix operator; calculates the result of an arithmetic right bitshift.
Infix operator; calculates the bitwise XOR of its arguments.
Calculates the bitwise AND of its arguments.
Calculates the bitwise NOT of its argument.
Calculates the bitwise OR of its arguments.
Calculates the result of an arithmetic left bitshift.
Calculates the result of an arithmetic right bitshift.
Calculates the bitwise XOR of its arguments.
Infix operator; calculates the bitwise OR of its arguments.
Prefix (unary) operator; calculates the bitwise NOT of its argument.
Link to this section Guards
Infix operator; calculates the bitwise AND of its arguments.
iex> 9 &&& 3
1Infix operator; calculates the result of an arithmetic left bitshift.
iex> 1 <<< 2
4
iex> 1 <<< -2
0
iex> -1 <<< 2
-4
iex> -1 <<< -2
-1Infix operator; calculates the result of an arithmetic right bitshift.
iex> 1 >>> 2
0
iex> 1 >>> -2
4
iex> -1 >>> 2
-1
iex> -1 >>> -2
-4Infix operator; calculates the bitwise XOR of its arguments.
iex> 9 ^^^ 3
10Calculates the bitwise AND of its arguments.
iex> band(9, 3)
1Calculates the bitwise NOT of its argument.
iex> bnot(2)
-3
iex> bnot(2) &&& 3
1Calculates the bitwise OR of its arguments.
iex> bor(9, 3)
11Calculates the result of an arithmetic left bitshift.
iex> bsl(1, 2)
4
iex> bsl(1, -2)
0
iex> bsl(-1, 2)
-4
iex> bsl(-1, -2)
-1Calculates the result of an arithmetic right bitshift.
iex> bsr(1, 2)
0
iex> bsr(1, -2)
4
iex> bsr(-1, 2)
-1
iex> bsr(-1, -2)
-4Calculates the bitwise XOR of its arguments.
iex> bxor(9, 3)
10Infix operator; calculates the bitwise OR of its arguments.
iex> 9 ||| 3
11Prefix (unary) operator; calculates the bitwise NOT of its argument.
iex> ~~~2
-3
iex> ~~~2 &&& 3
1