Compartilhar via


^ (OR exclusivo 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 Analytics Platform System (PDW) Ponto de extremidade de análise de SQL no Microsoft Fabric Warehouse no Microsoft Fabric Banco de Dados SQL no Microsoft Fabric

Executa uma operação OR exclusiva bit a bit entre dois valores inteiros.

Convenções de sintaxe de Transact-SQL

Sintaxe

expression ^ expression  

Argumentos

expressão
É qualquer expression válida de qualquer tipo de dados da categoria de tipo de dados inteiros ou os tipos de dados bit, binary ou varbinary. expression é tratada como um número binário para a operação bit a bit.

Observação

Apenas uma expression pode ser do tipo de dados binary ou varbinary em uma operação bit a bit.

Tipos de resultado

int se os valores de entrada são int.

smallint se os valores de entrada são smallint.

tinyint se os valores de entrada são tinyint.

Comentários

O operador bit a bit ^ executa um OR exclusivo lógico bit a bit entre as duas expressões, usando cada bit correspondente para as duas expressões. Os bits no resultado são definidos como 1 se um dos dois bits (mas não ambos) para o bit atual a ser resolvido nas expressões de entrada tiver o valor de 1. Se os dois bits forem 0 ou 1, o bit no resultado será limpo com o valor 0.

Se as expressões à esquerda e à direita tiverem tipos de dados inteiros diferentes (por exemplo, a expression à esquerda é smallint e a expression à direita é int), o argumento do tipo de dados menor será convertido no tipo de dados maior. Nesse caso, a expressão smallint é convertida em um int.

Exemplos

O exemplo a seguir cria uma tabela usando o tipo de dados int para armazenar os valores originais e insere os dois valores em uma linha.

CREATE TABLE bitwise (   
  a_int_value INT NOT NULL,  
  b_int_value INT NOT NULL);
GO  
INSERT bitwise VALUES (170, 75);  
GO  

A consulta a seguir executa o OR exclusivo bit a bit nas colunas a_int_value e b_int_value.

SELECT a_int_value ^ b_int_value  
FROM bitwise;  
GO  

Este é o conjunto de resultados:

-----------   
225           
  
(1 row(s) affected)  

A representação binária de 170 (a_int_value ou A) é 0000 0000 1010 1010. A representação binária de 75 (b_int_value ou B) é 0000 0000 0100 1011. A execução da operação OR exclusivo bit a bit nesses dois valores produz o resultado binário 0000 0000 1110 0001, que é o decimal 225.

(A ^ B)     
         0000 0000 1010 1010  
         0000 0000 0100 1011  
         -------------------  
         0000 0000 1110 0001  

Consulte Também

Expressões (Transact-SQL)
Operadores (Transact-SQL)
Operadores bit a bit (Transact-SQL)
^= (Atribuição de OR exclusivo bit a bit) (Transact-SQL)
Operadores compostos (Transact-SQL)