[comment]: # attributes: notoc

[comment]: # ({21daac02-ca911365})
# 2 Funzioni bitwise

Tutte le funzioni elencate qui sono supportate in:

-   [Espressioni trigger](/manual/config/triggers/expression)
-   [Item calcolati](/manual/config/items/itemtypes/calculated)
-   [Macro di espressione](/manual/config/macros/expression_macros)

Le funzioni sono elencate senza informazioni aggiuntive. Fare clic sulla funzione per visualizzare i dettagli completi.

|Function|Description|
|--|--------|
|[bitand](#bitand)|Il valore di "AND bitwise" di un valore di item e di una maschera.|
|[bitlshift](#bitlshift)|Lo shift bitwise a sinistra di un valore di item.|
|[bitnot](#bitnot)|Il valore di "NOT bitwise" di un valore di item.|
|[bitor](#bitor)|Il valore di "OR bitwise" di un valore di item e di una maschera.|
|[bitrshift](#bitrshift)|Lo shift bitwise a destra di un valore di item.|
|[bitxor](#bitxor)|Il valore di "OR esclusivo bitwise" di un valore di item e di una maschera.|

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

[comment]: # ({e635e2a6-6803853f})
### Dettagli della funzione

Alcune note generali sui parametri della funzione:

-   I parametri della funzione sono separati da una virgola
-   Le espressioni sono accettate come parametri
-   I parametri opzionali della funzione (o parti di parametro) sono indicati da
    `<` `>`

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

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

Il valore di "AND bit a bit" tra il valore di un item e una maschera.<br>
Tipi di valore supportati: *Integer*.

Parametri: 

-   **value** - il valore da controllare;
-   **mask** (obbligatorio) - un intero senza segno a 64 bit (0 - 18446744073709551615).

Sebbene il confronto venga eseguito in modalità bit a bit, tutti i valori devono essere forniti e vengono restituiti in formato decimale. Ad esempio, il controllo del 3° bit viene eseguito confrontando con 4, non con 100.

Esempi:

    bitand(last(/host/key),12)=8 or bitand(last(/host/key),12)=4 #3° o 4° bit impostato, ma non entrambi contemporaneamente
    bitand(last(/host/key),20)=16 #3° bit non impostato e 5° bit impostato

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

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

Lo spostamento bit a sinistra del valore di un item.<br>
Tipi di valore supportati: *Intero*.

Parametri: 

-   **value** - il valore da controllare;
-   **bits to shift** (obbligatorio) - il numero di bit da spostare.

Sebbene il confronto venga eseguito a livello di bit, tutti i valori devono essere forniti e vengono restituiti in formato decimale. Ad esempio, il controllo del 3° bit viene eseguito confrontandolo con 4, non con 100.

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

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

Il valore di "NOT bit a bit" di un valore di item.<br>
Tipi di valore supportati: *Integer*.

Parametro:

-   **value** - il valore da controllare.

Sebbene il confronto venga eseguito in modalità bit a bit, tutti i valori devono essere forniti e vengono restituiti in formato decimale. Ad esempio, il controllo del 3° bit viene eseguito confrontando con 4, non con 100.

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

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

Il valore dell'"OR bit a bit" tra il valore di un item e la maschera.<br>
Tipi di valore supportati: *Intero*.

Parametri: 

-   **value** - il valore da controllare;
-   **mask** (obbligatorio) - un intero senza segno a 64 bit (0 - 18446744073709551615).

Sebbene il confronto venga eseguito in modo bit a bit, tutti i valori devono essere forniti e vengono restituiti in formato decimale. Ad esempio, il controllo del 3° bit viene eseguito confrontando con 4, non con 100.

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

[comment]: # ({6dede4f6-ade72509})
##### bitrshift(valore, bit da spostare) {#bitrshift}

Lo spostamento bit a destra del valore di un item.<br>
Tipi di valore supportati: *Integer*.

Parametri: 

-   **value** - il valore da controllare;
-   **bits to shift** (obbligatorio) - il numero di bit da spostare.

Sebbene il confronto venga eseguito a livello di bit, tutti i valori devono essere forniti e vengono restituiti in formato decimale. Ad esempio, il controllo del 3° bit viene eseguito confrontando con 4, non con 100.

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

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

Il valore dell'"OR esclusivo bit a bit" tra un valore di item e una maschera.<br>
Tipi di valore supportati: *Intero*.

Parametri: 

-   **value** - il valore da controllare;
-   **mask** (obbligatorio) - un intero senza segno a 64 bit (0 - 18446744073709551615).

Sebbene il confronto venga eseguito a livello di bit, tutti i valori devono essere forniti e vengono restituiti in formato decimale. Ad esempio, il controllo del 3° bit viene eseguito confrontando con 4, non con 100.

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

[comment]: # ({ba59dd3a-e800d07b})
Vedi [tutte le funzioni supportate](/manual/appendix/functions).

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