Spec-Zone.ru › Elixir 1.4

Битовые операции

Набор макросов, выполняющих вычисления над битами.

Макросы в этом модуле представлены в двух вариантах: именованные или операторные. Например:

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

Инфиксный оператор; вычисляет битовую операцию XOR над своими аргументами

band(left, right)

Вычисляет битовую конъюнкцию своих аргументов

bnot(expr)

Вычисляет битовую инверсию своего аргумента

bor(left, right)

Вычисляет битовую дизъюнкцию своих аргументов

bsl(left, right)

Вычисляет результат арифметического сдвига влево на заданное число битов

bsr(left, right)

Вычисляет результат арифметического сдвига вправо на заданное число битов

bxor(left, right)

Вычисляет битовую операцию XOR над своими аргументами

left ||| right

Инфиксный оператор; вычисляет битовую дизъюнкцию своих аргументов

~~~expr

Префиксный (унарный) оператор; вычисляет битовую инверсию своего аргумента

Функции

left &&& right (макрос)

Инфиксный оператор; вычисляет битовую конъюнкцию своих аргументов.

iex> 9 &&& 3
1

left <<< right (макрос)

Инфиксный оператор; вычисляет результат арифметического сдвига влево.

iex> 1 <<< 2
4
iex> 1 <<< -2
0
iex> -1 <<< 2
-4
iex> -1 <<< -2
-1

left >>> right (макрос)

Инфиксный оператор; вычисляет результат арифметического сдвига вправо.

iex> 1 >>> 2
0
iex> 1 >>> -2
4
iex> -1 >>> 2
-1
iex> -1 >>> -2
-4

left ^^^ right (макрос)

Инфиксный оператор; вычисляет битовую операцию XOR над своими аргументами.

iex> 9 ^^^ 3
10

band(left, right) (макрос)

Вычисляет битовую конъюнкцию своих аргументов.

iex> band(9, 3)
1

bnot(expr) (макрос)

Вычисляет битовую инверсию своего аргумента.

iex> bnot(2)
-3
iex> bnot(2) &&& 3
1

bor(left, right) (макрос)

Вычисляет битовую дизъюнкцию своих аргументов.

iex> bor(9, 3)
11

bsl(left, right) (макрос)

Вычисляет результат арифметического сдвига влево.

iex> bsl(1, 2)
4
iex> bsl(1, -2)
0
iex> bsl(-1, 2)
-4
iex> bsl(-1, -2)
-1

bsr(left, right) (макрос)

Вычисляет результат арифметического сдвига вправо.

iex> bsr(1, 2)
0
iex> bsr(1, -2)
4
iex> bsr(-1, 2)
-1
iex> bsr(-1, -2)
-4

bxor(left, right) (макрос)

Вычисляет битовую операцию XOR над своими аргументами.

iex> bxor(9, 3)
10

left ||| right (макрос)

Инфиксный оператор; вычисляет битовую дизъюнкцию своих аргументов.

iex> 9 ||| 3
11

~~~expr (макрос)

Префиксный (унарный) оператор; вычисляет битовую инверсию своего аргумента.

iex> ~~~2
-3
iex> ~~~2 &&& 3
1

© 2012 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/elixir/1.4.5/Bitwise.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API