Spec-Zone.ru › Elixir 1.17

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

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

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

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

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
END_OF_DOCUMENT_MARKER

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

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

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

Spec-Zone.ru

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