[comment]: # attributes: notoc

[comment]: # (terms:  bitand, bitlshift, bitnot, bitor, bitrshift, bitxor )

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

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

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

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

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

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

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

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

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

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

[comment]: # ({79f53232-7ffd1e30})
##### bitand(value,mask) {#bitand}

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

Параметры: 

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

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

Примеры:

    bitand(last(/host/key),12)=8 or bitand(last(/host/key),12)=4 # установлен 3-й или 4-й бит, но не оба одновременно
    bitand(last(/host/key),20)=16 # 3-й бит не установлен, а 5-й бит установлен

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

[comment]: # ({dbf180d5-31f09935})
##### bitlshift(value,bits to shift) {#bitlshift}

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

Параметры: 

-   **value** — значение для проверки;
-   **bits to shift** (обязательный) — количество битов для сдвига.

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

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

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

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

Параметр:

-   **value** — значение для проверки.

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

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

[comment]: # ({cd28d91c-781b9d08})
##### bitor(value,mask) {#bitor}

Значение операции "побитовое ИЛИ" для значения элемента данных и маски.<br>
Поддерживаемые типы значений: *Целое число*.

Параметры: 

-   **value** - значение для проверки;
-   **mask** (обязательный) - 64-битное беззнаковое целое число (0 - 18446744073709551615).

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

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

[comment]: # ({6dede4f6-ade72509})
##### bitrshift(value,bits to shift) {#bitrshift}

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

Параметры: 

-   **value** — значение для проверки;
-   **bits to shift** (обязательный) — количество битов для сдвига.

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

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

[comment]: # ({2384b1d9-51a714f0})
##### bitxor(value,mask) {#bitxor}

Значение операции "исключающее ИЛИ по битам" для значения элемента данных и маски.<br>
Поддерживаемые типы значений: *Целое число*.

Параметры: 

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

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

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

[comment]: # ({ba58f5e4-e800d07b})
См. [все поддерживаемые функции](/manual/config/triggers/expression#functions).

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