Partilhar via


Operadores bitwise (Transact-SQL)

Aplica-se a:SQL ServerBase de Dados SQL do AzureInstância Gerida do Azure SQLAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Ponto de Extremidade de Análise SQL no Microsoft FabricArmazém no Microsoft FabricBase de Dados SQL no Microsoft Fabric

Os operadores Bitwise executam manipulações de bits entre duas expressões de qualquer um dos tipos de dados da categoria de tipo de dados inteiro.

Os operadores Bitwise convertem dois valores inteiros em bits binários, executam o AND, ORou NOT operação em cada bit, produzindo um resultado. Em seguida, converte o resultado em um inteiro.

Por exemplo, o inteiro 170 converte em binário 1010 1010.

O inteiro 75 converte em binário 0100 1011.

Operator Matemática bit a bit
AND

Se os bits em qualquer posição forem ambos 1, o resultado é 1.
1010 1010 = 170
0100 1011 = 75
-----------------
0000 1010 = 10
OR

Se qualquer bit em qualquer posição for 1, o resultado é 1.
1010 1010 = 170
0100 1011 = 75
-----------------
1110 1011 = 235
NOT

Inverte o valor de bit em cada posição de bit.
1010 1010 = 170
-----------------
0101 0101 = 85

Os artigos a seguir fornecem mais informações sobre os operadores bitwise disponíveis no Mecanismo de Banco de Dados:

Os seguintes operadores bitwise foram introduzidos no SQL Server 2022 (16.x):

Os operandos para operadores bit a bit podem ser qualquer um dos tipos de dados das categorias de tipo de dados inteiro ou cadeia binária (exceto para o tipo de dados de imagem ), exceto que ambos os operandos não podem ser qualquer um dos tipos de dados da categoria de tipo de dados de cadeia binária. A tabela a seguir mostra os tipos de dados de operando suportados.

Operando esquerdo Operando direito
binary int, smallint ou tinyint
bit int, smallint, tinyint, ou bit
bigint bigint, int, smallint, tinyint, binário ou varbinary
int int, smallint, tinyint, binário ou varbinary
smallint int, smallint, tinyint, binário ou varbinary
tinyint int, smallint, tinyint, binário ou varbinary
varbinary int, smallint ou tinyint

Consulte também