Dela via


~ (Bitvis INTE) (Azure Stream Analytics)

Utför en bitvis logisk NOT-åtgärd på ett heltalsvärde.

Syntax

~ expression

Argument

expression

Är ett giltigt uttryck för datatyperna bit eller bigint. Uttrycket behandlas som ett binärt tal för bitvis-åtgärden.

Returtyper

bit om indatavärdet är bit.

bigint om indatavärdet är bigint.

Kommentarer

~ bitwise-operatorn utför en bitvis logisk NOT på uttrycket och tar varje bit i tur och ordning. Om uttrycket har värdet 0 anges bitarna i resultatuppsättningen till 1. Annars rensas biten i resultatet till värdet 0. Med andra ord ändras de till nollor och nollor ändras till ettor.

Som illustration är den binära representationen av 170 0000 0000 1010 1010. Om du utför åtgärden BITVIS INTE på det här värdet genereras det binära resultatet 1111 1111 0101 0101, vilket är decimal -171.

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

Exempel

Med en vanlig indatauppsättning:

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
)

Tillämpa operatorn på bituttryck :

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

Returnerar:

bit0 bit1 bitN NOT0 NOT1 NOTnull
falskt true NULL true falskt NULL

Tillämpa operatorn på bigint-uttryck :

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

Returnerar:

bit0 bit1 bitN NOT0 NOT1 NOTnull NOT170
0 1 NULL -1 -2 NULL -171

Verifiera utdatatyperna:

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

Returnerar:

NOTtype_bit NOTtype_bigint
bit bigint

Se även