Partilhar via


~ (Bit-a-bit NÃO) (Azure Stream Analytics)

Executa uma operação NÃO lógica bit-a-bit num valor inteiro.

Sintaxe

~ expression

Argumentos

expression

É qualquer expressão válida dos tipos de dados bit ou bigint. A expressão é tratada como um número binário para a operação bit-a-bit.

Tipos de Retorno

bit se o valor de entrada for bit.

bigint se o valor de entrada for bigint.

Observações

O operador ~ bit-a-bit executa uma lógica bit-a-bit NOT na expressão, tomando cada bit por sua vez. Se a expressão tiver um valor de 0, os bits no conjunto de resultados são definidos como 1; caso contrário, o bit no resultado é limpo para um valor de 0. Por outras palavras, os valores são alterados para zeros e os zeros são alterados para zeros.

Para ilustração, a representação binária de 170 é 0000 0000 1010 1010. Executar a operação bit-a-bit NOT neste valor produz o resultado binário 1111 1111 0101 0101, que é decimal -171.

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

Exemplos

Com um conjunto de dados de entrada comum:

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
)

Aplicar o operador em expressões de bits :

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

Devolve:

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

Aplicar o operador em expressões bigint :

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

Devolve:

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

A validar os tipos de saída:

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

Devolve:

NOTtype_bit NOTtype_bigint
bit bigint

Consulte também