Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
✅ Flusso di eventi dell'infrastruttura di Analisi ✅ di flusso di Azure
Esegue un'operazione OR (OR) logico bit per bit tra due valori integer, valutando ogni bit corrispondente da entrambe le espressioni.
Sintassi
expression ^ expression
Argomenti
di espressione
Qualsiasi espressione valida dei tipi di dati bit o bigint. L'espressione viene considerata come un numero binario per l'operazione bit per bit.
Tipi restituiti
bit se entrambi i valori di input sono bit.
bigint se uno o entrambi i valori di input sono bigint.
Osservazioni:
L'operatore ^ bit per bit esegue un OR esclusivo logico bit per bit tra le due espressioni, accettando ogni bit corrispondente per entrambe le espressioni. I bit nel risultato vengono impostati su 1 se uno dei bit (ma non entrambi) (per il bit corrente risolto) nelle espressioni di input ha un valore pari a 1; in caso contrario, il bit nel risultato è impostato su 0.
Ad esempio, la rappresentazione binaria di 170 è 0000 0000 1010 1010. La rappresentazione binaria di 75 è 0000 0000 0100 1011. L'esecuzione dell'operazione XOR bit per bit su questi due valori produce il risultato binario 0000 0000 1110 0001, che è decimale 225.
(170 ^ 75)
0000 0000 1010 1010
0000 0000 0100 1011
-------------------
0000 0000 1110 0001
Si noti che il cast di un valore FLOAT a BIGINT e l'applicazione di un operatore bit per bit su di esso spesso non restituirà lo stesso risultato del cast a BIT e l'applicazione dello stesso operatore:
- Prima opzione: 170 ^ 75.0 = 170 ^ 75 => 225
- Seconda opzione: 170 ^ 75.0 => 170 ^ 1 = 171
Vedere Panoramica dei tipi di dati per le regole di conversione in bit.
Esempi
Con un set di dati di input comune:
WITH MyCTE AS (
SELECT
CAST(0 AS BIT) AS bit0,
CAST(1 AS BIT) AS bit1,
CAST(NULL AS BIT) AS bitN,
CAST(0 AS BIGINT) AS bigint0,
CAST(1 AS BIGINT) AS bigint1,
CAST(NULL AS BIGINT) AS bigintN
FROM input
)
Applicazione dell'operatore alle espressioni di bit :
SELECT
bit0,
bit1,
bitN,
bit0 ^ bit0 AS XOR00,
bit0 ^ bit1 AS XOR01,
bit1 ^ bit0 AS XOR10,
bit1 ^ bit1 AS XOR11,
bitN ^ bit1 AS XORnull
INTO bitXOR
FROM MyCTE
Restituisce:
| bit0 | bit1 | bitN | XOR00 | XOR01 | XOR10 | XOR11 | XORnull |
|---|---|---|---|---|---|---|---|
| falso | vero | NULLO | falso | vero | vero | falso | NULLO |
Applicazione dell'operatore alle espressioni bigint :
SELECT
bigint0,
bigint1,
bigintN,
bigint0 ^ bigint0 AS XOR00,
bigint0 ^ bigint1 AS XOR01,
bigint1 ^ bigint0 AS XOR10,
bigint1 ^ bigint1 AS XOR11,
bigintN ^ bigint1 AS XORnull,
170 ^ 75 AS XORvalues
INTO bigintXOR
FROM MyCTE
Restituisce:
| bigint0 | bigint1 | bigintN | XOR00 | XOR01 | XOR10 | XOR11 | XORnull | XORvalues |
|---|---|---|---|---|---|---|---|---|
| 0 | 1 | NULLO | 0 | 1 | 1 | 0 | NULLO | 225 |
Convalida dei tipi di output:
SELECT
GetType(bit0 ^ bit0) AS XORtype_bit,
GetType(bigint0 ^ bigint0) AS XORtype_bigint,
GetType(bit0 ^ bigint0) AS XORtype_mixed
INTO typesXOR
FROM MyCTE
Restituisce:
| XORtype_bit | XORtype_bigint | ORtype_mixed |
|---|---|---|
| pezzo | bigint | bigint |