Spec-Zone.ru › Elixir 1.18

Исходный код Битовые операции

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

Все битовые функции работают только с целыми числами; в противном случае генерируется исключение 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()

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

Допускается в тестах стражей. Компилятор выполняет встраивание.

Примеры

iex> bxor(9, 3)
10

left ||| rightSource

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

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

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

Допускается в тестах стражей. Компилятор выполняет встраивание.

Примеры

iex> 9 ||| 3
11

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

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

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

Spec-Zone.ru

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