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

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

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

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

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

|ФУНКЦИЯ|<|<|
|--|--|--|
|**Описание**|**Параметры, специфичные для функции**|**Комментарии**|
|**bitand** (значение,маска)|<|<|
|Результат операции «побитовое И» значения элемента данных и маски.|**значение** — проверяемое значение<br>**маска** (обязательно) — 64-битное целое без знака (0 - 18446744073709551615)|Поддерживаются типы значений: int<br><br>Несмотря на то, что сравнение выполняется побитово, все значения должны быть представлены и затем возвращаются в десятичном формате. Например, проверка третьего бита выполняется путём сравнения с числом 4, а не 100.<br><br>Примеры:<br>=> **bitand**(last(/узел_сети/ключ),**12**)=8 or **bitand**(last(/узел_сети/ключ),**12**)=4 → выставлены третий или четвёртый биты, но не оба сразу<br>=> **bitand**(last(/узел_сети/ключ),**20**)=16 → третий бит не выставлен, а пятый — выставлен.|
|**bitlshift** (значение,сдвиг_битов)|<|<|
|Побитовый сдвиг значения элемента данных влево.|**значение** — проверяемое значение<br>**сдвиг_битов** (обязательно) — количество битов для сдвига|Поддерживаются типы значений: int<br><br>Несмотря на то, что сравнение выполняется побитово, все значения должны быть представлены и затем возвращаются в десятичном формате. Например, проверка третьего бита выполняется путём сравнения с числом 4, а не 100.|
|**bitnot** (значение)|<|<|
|Результат операции «побитовое НЕ» значения элемента данных.|**значение** — проверяемое значение<br>|Поддерживаются типы значений: int<br><br>Несмотря на то, что сравнение выполняется побитово, все значения должны быть представлены и затем возвращаются в десятичном формате. Например, проверка третьего бита выполняется путём сравнения с числом 4, а не 100.|
|**bitor** (значение,маска)|<|<|
|Результат операции «побитовое ИЛИ» значения элемента данных и маски.|**значение** — проверяемое значение<br>**маска** (mandatory) — 64-битное целое без знака (0 - 18446744073709551615)|Поддерживаются типы значений: int<br><br>Несмотря на то, что сравнение выполняется побитово, все значения должны быть представлены и затем возвращаются в десятичном формате. Например, проверка третьего бита выполняется путём сравнения с числом 4, а не 100.|
|**bitrshift** (значение,сдвиг_битов)|<|<|
|Побитовый сдвиг значения элемента данных вправо.|**значение** — проверяемое значение<br>**сдвиг_битов** (обязательно) — количество битов для сдвига|Поддерживаются типы значений: int<br><br>Несмотря на то, что сравнение выполняется побитово, все значения должны быть представлены и затем возвращаются в десятичном формате. Например, проверка третьего бита выполняется путём сравнения с числом 4, а не 100.|
|**bitxor** (значение,маска)|<|<|
|Результат операции «побитовое исключающее ИЛИ» значения элемента данных и маски.|**значение** — проверяемое значение<br>**маска** (обязательно) — 64-битное целое без знака (0 - 18446744073709551615)|Поддерживаются типы значений: int<br><br>Несмотря на то, что сравнение выполняется побитово, все значения должны быть представлены и затем возвращаются в десятичном формате. Например, проверка третьего бита выполняется путём сравнения с числом 4, а не 100.|

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