^ (OR exclusivo bit a bit) (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punto de conexión de análisis SQL en Microsoft FabricAlmacenamiento en Microsoft Fabric

Lleva a cabo una operación de OR exclusivo bit a bit entre dos valores enteros.

Convenciones de sintaxis de Transact-SQL

Sintaxis

expression ^ expression  

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

Argumentos

expression
Es cualquier expresión válida de uno de los tipos de datos de la categoría del tipo de datos entero, o los tipos de datos bit, binary o varbinary. expression se trata como un número binario para la operación bit a bit.

Nota

Solo una expression puede ser del tipo de datos binary o varbinary en una operación bit a bit.

Tipos de resultado

int si los valores de entrada son int.

smallint si los valores de entrada son smallint.

tinyint si los valores de entrada son tinyint.

Observaciones

El operador ^ bit a bit realiza una operación OR lógica exclusiva bit a bit entre dos expresiones y, para ello, toma cada bit correspondiente de ambas expresiones. Los bits del resultado se establecen en 1 si alguno (pero no ambos) de los bits (en el caso del bit actual que se resuelve) de las expresiones de entrada tiene el valor 1. Si ambos bits son 0 ó 1, el bit del resultado se establece en el valor 0.

Si las expresiones de la izquierda y de la derecha tienen tipos de datos de entero diferentes (por ejemplo, expression de la izquierda es de tipo smallint y expression de la derecha es de tipo int), el argumento del tipo de datos más pequeño se convierte al tipo de datos mayor. En este caso, smallintexpression se convierte en int.

Ejemplos

En el siguiente ejemplo se crea una tabla con el tipo de datos int que almacena los valores originales e inserta dos valores en una fila.

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

En la consulta siguiente se lleva a cabo la operación de OR exclusivo bit a bit entre las columnas a_int_value y b_int_value.

SELECT a_int_value ^ b_int_value  
FROM bitwise;  
GO  

El conjunto de resultados es:

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

La representación binaria de 170 (a_int_value o A) es 0000 0000 1010 1010. La representación binaria de 75 (b_int_value o B) es 0000 0000 0100 1011. Realizar la operación de OR exclusivo bit a bit sobre estos dos valores produce el resultado binario 0000 0000 1110 0001, que es el decimal 225.

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

Consulte también

Expresiones (Transact-SQL)
Operadores (Transact-SQL)
Operadores bit a bit (Transact-SQL)
^ = (Asignación de OR exclusivo bit a bit) (Transact-SQL)
Operadores compuestos (Transact-SQL)