Partager via


~ (NOT au niveau du bit)

✅ Azure Stream Analytics ✅ Fabric Eventstream

Effectue une opération NOT logique au niveau du bit sur une valeur entière.

Syntaxe

~ expression

Les arguments

expression

Expression valide des types de données bit ou bigint. L’expression est traitée comme un nombre binaire pour l’opération au niveau du bit.

Types de retour

bit si la valeur d’entrée est bit.

bigint si la valeur d’entrée est bigint.

Remarques

L’opérateur ~ au niveau du bit exécute une logique au niveau du bit NOT sur l’expression, en prenant chaque bit à son tour. Si l’expression a la valeur 0, les bits du jeu de résultats sont définis sur 1 ; sinon, le bit dans le résultat est effacé à la valeur 0. En d’autres termes, les valeurs sont modifiées en zéros et les zéros sont modifiés en zéros.

Pour illustration, la représentation binaire de 170 est 0000 000 1010 1010. L’exécution de l’opération NOT au niveau du bit sur cette valeur produit le résultat binaire 1111 111 0101 0101, qui est décimal -171.

(~170)
0000 0000 1010 1010
-------------------
1111 1111 0101 0101

Exemples

Avec un jeu de données d’entrée commun :

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
)

Application de l’opérateur sur les expressions de bits :

SELECT
	bit0,
	bit1,
	bitN,
	~ bit0 AS NOT0,
	~ bit1 AS NOT1,
	~ bitN AS NOTnull
INTO bitNOT
FROM MyCTE

Retours :

bit0 bit1 bitN NOT0 NOT1 NOTnull
faux vrai ZÉRO vrai faux ZÉRO

Application de l’opérateur sur les expressions bigint :

SELECT
	bigint0,
	bigint1,
	bigintN,
	~ bigint0 AS NOT0,
	~ bigint1 AS NOT1,
	~ bigintN AS NOTnull,
	~ 170 AS NOT170
INTO bigintNOT
FROM MyCTE

Retours :

bit0 bit1 bitN NOT0 NOT1 NOTnull NOT170
0 1 ZÉRO -1 -2 ZÉRO -171

Validation des types de sortie :

SELECT
	GetType(~ bit0) AS NOTtype_bit,
	GetType(~ bigint0) AS NOTtype_bigint
INTO typesNOT
FROM MyCTE

Retours :

NOTtype_bit NOTtype_bigint
mors bigint

Voir aussi