Spec-Zone.ru › Elixir 1.16

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

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

Все битовые функции работают только с целыми числами; в противном случае генерируется исключение ArithmeticError. Функции band/2, bor/2, bsl/2 и bsr/2 также имеют операторы соответственно: &&&/2, |||/2, <<</2 и >>>/2.

Условий

Все битовые функции могут использоваться в условиях:

iex> odd? = fn
...>   int when Bitwise.band(int, 1) == 1 -> true
...>   _ -> false
...> end
iex> odd?.(1)
true

Все функции в этом модуле инлайнят компилятор.

Краткое описание

Условия

left &&& right

Оператор битового И.

left <<< right

Оператор сдвига влево.

left >>> right

Оператор арифметического сдвига вправо.

band(left, right)

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

bnot(expr)

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

bor(left, right)

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

bsl(left, right)

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

bsr(left, right)

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

bxor(left, right)

Вычисляет битовое ИСКЛЮЧАЮЩЕЕ ИЛИ своих аргументов.

left ||| right

Оператор битового ИЛИ.

Условий

left &&& rightSource

@spec integer() &&& integer() :: integer()

Оператор битового И.

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

Разрешено в тестах условий. Инлайнится компилятором.

Примеры

iex> 9 &&& 3
1

left <<< rightSource

@spec integer() <<< integer() :: integer()

Оператор арифметического сдвига влево.

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

Разрешено в тестах условий. Инлайнится компилятором.

Примеры

iex> 1 <<< 2
4

iex> 1 <<< -2
0

iex> -1 <<< 2
-4

iex> -1 <<< -2
-1

left >>> rightSource

@spec integer() >>> integer() :: integer()

Оператор арифметического сдвига вправо.

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

Разрешено в тестах условий. Инлайнится компилятором.

Примеры

iex> 1 >>> 2
0

iex> 1 >>> -2
4

iex> -1 >>> 2
-1

iex> -1 >>> -2
-4

band(left, right)Source

@spec band(integer(), integer()) :: integer()

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

Разрешено в тестах условий. Инлайнится компилятором.

Примеры

iex> band(9, 3)
1

bnot(expr)Source

@spec bnot(integer()) :: integer()

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

Разрешено в тестах условий. Инлайнится компилятором.

Примеры

iex> bnot(2)
-3

iex> bnot(2) &&& 3
1

bor(left, right)Source

@spec bor(integer(), integer()) :: integer()

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

Разрешено в тестах условий. Инлайнится компилятором.

Примеры

iex> bor(9, 3)
11

bsl(left, right)Source

@spec bsl(integer(), integer()) :: integer()

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

Разрешено в тестах условий. Инлайнится компилятором.

Примеры

iex> bsl(1, 2)
4

iex> bsl(1, -2)
0

iex> bsl(-1, 2)
-4

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

bsr(left, right)Source

@spec bsr(integer(), integer()) :: integer()

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

Разрешено в тестах условий. Инлайнится компилятором.

Примеры

iex> bsr(1, 2)
0

iex> bsr(1, -2)
4

iex> bsr(-1, 2)
-1

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

bxor(left, right)Source

@spec bxor(integer(), integer()) :: integer()

Вычисляет битовое ИСКЛЮЧАЮЩЕЕ ИЛИ своих аргументов.

Разрешено в тестах условий. Инлайнится компилятором.

Примеры

iex> bxor(9, 3)
10

left ||| rightSource

@spec integer() ||| integer() :: integer()

Оператор битового ИЛИ.

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

Разрешено в тестах условий. Инлайнится компилятором.

Примеры

iex> 9 ||| 3
11

Скачать версию ePub

Создано с помощью ExDoc (v0.32.2) для языка программирования Elixir

© 2012-2024 The Elixir Team
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/elixir/1.16.3/Bitwise.html

Spec-Zone.ru

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