[comment]: # attributes: notoc

[comment]: # translation:outdated

[comment]: # ({21daac02-ca911365})
# 2. Побитовые функции

Все перечисленные здесь функции поддерживаются в:

-   [триггерных выражениях](/manual/config/triggers/expression)
-   [вычисляемых элементах данных](/manual/config/items/itemtypes/calculated)
-   [макросах выражений](/manual/config/macros/expression_macros)

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

|Функция|Описание|
|--|--------|
|[bitand](#bitand)|Результат операции «побитовое И» значения элемента данных и маски.|
|[bitlshift](#bitlshift)|Побитовый сдвиг значения элемента данных влево.|
|[bitnot](#bitnot)|Результат операции «побитовое НЕ» значения элемента данных.|
|[bitor](#bitor)|Результат операции «побитовое ИЛИ» значения элемента данных и маски.|
|[bitrshift](#bitrshift)|Побитовый сдвиг значения элемента данных вправо.|
|[bitxor](#bitxor)|Результат операции «побитовое исключающее ИЛИ» значения элемента данных и маски.|

[comment]: # ({/21daac02-ca911365})

[comment]: # ({e635e2a6-6803853f})
### Подробности функции

Некоторые общие замечания о параметрах функций:

-   параметры функций разделяются запятыми
-   в качестве параметров допустимы выражения
-   необязательные параметры функций (или части параметров) обозначаются угловыми скобками
    `<` `>`

[comment]: # ({/e635e2a6-6803853f})

[comment]: # ({79f53232-7ffd1e30})
##### bitand(значение,маска) {#bitand}

Результат операции «побитовое И» значения элемента данных и маски.<br>
Поддерживаемые типы значений: *Integer*.

Параметры: 

-   **значение** — проверяемое значение;
-   **маска** (обязательно) — 64-битное целое без знака (0 - 18446744073709551615).

Несмотря на то, что сравнение выполняется побитово, все значения должны быть представлены и затем возвращаются в десятичном формате. Например, проверка третьего бита выполняется путём сравнения с числом 4, а не 100.

Примеры:

    bitand(last(/узел_сети/ключ),12)=8 or bitand(last(/host/key),12)=4 #выставлены третий или четвёртый биты, но не оба сразу
    bitand(last(/узел_сети/ключ),20)=16 #третий бит не выставлен, а пятый — выставлен

[comment]: # ({/79f53232-7ffd1e30})

[comment]: # ({dbf180d5-31f09935})
##### bitlshift(значение,сдвиг_битов) {#bitlshift}

Побитовый сдвиг значения элемента данных влево.<br>
Поддерживаемые типы значений: *Integer*.

Параметры: 

-   **значение** — проверяемое значение;
-   **сдвиг_битов** (обязательно) — количество битов для сдвига.

Несмотря на то, что сравнение выполняется побитово, все значения должны быть представлены и затем возвращаются в десятичном формате. Например, проверка третьего бита выполняется путём сравнения с числом 4, а не 100.

[comment]: # ({/dbf180d5-31f09935})

[comment]: # ({6e54f229-d3633e68})
##### bitnot(значение) {#bitnot}

Результат операции «побитовое НЕ» значения элемента данных.<br>
Поддерживаемые типы значений: *Integer*.

Параметр: 

-   **значение** — проверяемое значение.

Несмотря на то, что сравнение выполняется побитово, все значения должны быть представлены и затем возвращаются в десятичном формате. Например, проверка третьего бита выполняется путём сравнения с числом 4, а не 100

[comment]: # ({/6e54f229-d3633e68})

[comment]: # ({cd28d91c-781b9d08})
##### bitor(значение,маска) {#bitor}

Результат операции «побитовое ИЛИ» значения элемента данных и маски.<br>
Поддерживаемые типы значений: *Integer*.

Параметры: 

-   **значение** — проверяемое значение;
-   **маска** (mandatory) — 64-битное целое без знака (0 - 18446744073709551615).

Несмотря на то, что сравнение выполняется побитово, все значения должны быть представлены и затем возвращаются в десятичном формате. Например, проверка третьего бита выполняется путём сравнения с числом 4, а не 100.

[comment]: # ({/cd28d91c-781b9d08})

[comment]: # ({6dede4f6-ade72509})
##### bitrshift(значение,сдвиг_битов) {#bitrshift}

Побитовый сдвиг значения элемента данных вправо.<br>
Поддерживаемые типы значений: *Integer*.

Параметры: 

-   **значение** — проверяемое значение;
-   **сдвиг_битов** (обязательно) — количество битов для сдвига.

Несмотря на то, что сравнение выполняется побитово, все значения должны быть представлены и затем возвращаются в десятичном формате. Например, проверка третьего бита выполняется путём сравнения с числом 4, а не 100.

[comment]: # ({/6dede4f6-ade72509})

[comment]: # ({2384b1d9-51a714f0})
##### bitxor(значение,маска) {#bitxor}

Результат операции «побитовое исключающее ИЛИ» значения элемента данных и маски.<br>
Поддерживаемые типы значений: *Integer*.

Параметры: 

-   **значение** — проверяемое значение;
-   **маска** (обязательно) — 64-битное целое без знака (0 - 18446744073709551615).

Несмотря на то, что сравнение выполняется побитово, все значения должны быть представлены и затем возвращаются в десятичном формате. Например, проверка третьего бита выполняется путём сравнения с числом 4, а не 100.

[comment]: # ({/2384b1d9-51a714f0})

[comment]: # ({ba59dd3a-e800d07b})

См. [все поддерживаемые функции](/manual/appendix/functions).

[comment]: # ({/ba59dd3a-e800d07b})
