Compartilhar via


Operadores bit a bit (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics PDW (Analytics Platform System) Ponto de extremidade de análise de SQL no Microsoft Fabric Warehouse no Microsoft Fabric

Os operadores bit a bit desempenham manipulações de bit entre duas expressões de qualquer um dos tipos de dados da categoria de tipo de dados inteiro.

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

Por exemplo, o inteiro 170 é convertido no binário 1010 1010.

O inteiro 75 é convertido no binário 0100 1011.

Operador Matemática bit a bit
AND

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

Se um dos bits em qualquer posição for 1, o resultado será 1.
1010 1010 = 170
0100 1011 = 75
-----------------
1110 1011 = 235
NOT

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

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

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

Os operandos dos operadores bit a bit podem ser um dos tipos de dados das categorias de tipo de dados inteiro ou cadeia de caracteres binária (exceto o tipo de dados image), mas os operadores não podem ser um dos tipos de dados da categoria de tipo de dados de cadeia de caracteres binária. A tabela a seguir mostra os tipos de dados de operando com suporte.

Operando da esquerda Operando da direita
binary int, smallint ou tinyint
bit int, smallint, tinyint ou bits
bigint bigint, int, smallint, tinyint, binary ou varbinary
int int, smallint, tinyint, binary ou varbinary
smallint int, smallint, tinyint, binary ou varbinary
tinyint int, smallint, tinyint, binary ou varbinary
varbinary int, smallint ou tinyint

Confira também