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

SE APLICA A: síSQL Server síAzure SQL Database síAzure SQL Data Warehouse síAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Lleva a cabo una operación de OR exclusivo bit a bit entre dos valores enteros.Performs a bitwise exclusive OR operation between two integer values.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

expression ^ expression  

ArgumentosArguments

expressionexpression
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.Is any valid expression of any one of the data types of the integer data type category, or the bit, or the binary or varbinary data types. expression se trata como un número binario para la operación bit a bit.expression is treated as a binary number for the bitwise operation.

Nota

Solo una expression puede ser del tipo de datos binary o varbinary en una operación bit a bit.Only one expression can be of either binary or varbinary data type in a bitwise operation.

Tipos de resultadoResult Types

int si los valores de entrada son int.int if the input values are int.

smallint si los valores de entrada son smallint.smallint if the input values are smallint.

tinyint si los valores de entrada son tinyint.tinyint if the input values are tinyint.

NotasRemarks

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.The ^ bitwise operator performs a bitwise logical exclusive OR between the two expressions, taking each corresponding bit for both expressions. 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.The bits in the result are set to 1 if either (but not both) bits (for the current bit being resolved) in the input expressions have a value of 1. Si ambos bits son 0 ó 1, el bit del resultado se establece en el valor 0.If both bits are 0 or both bits are 1, the bit in the result is cleared to a value of 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.If the left and right expressions have different integer data types (for example, the left expression is smallint and the right expression is int), the argument of the smaller data type is converted to the larger data type. En este caso, smallintexpression se convierte en int.In this case, the smallintexpression is converted to an int.

EjemplosExamples

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.The following example creates a table using the int data type to store the original values and inserts two values into one row.

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.The following query performs the bitwise exclusive OR on the a_int_value and b_int_value columns.

SELECT a_int_value ^ b_int_value  
FROM bitwise;  
GO  

El conjunto de resultados es:Here is the result set:

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

La representación binaria de 170 (a_int_value o A) es 0000 0000 1010 1010.The binary representation of 170 (a_int_value or A) is 0000 0000 1010 1010. La representación binaria de 75 (b_int_value o B) es 0000 0000 0100 1011.The binary representation of 75 (b_int_value or B) is 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.Performing the bitwise exclusive OR operation on these two values produces the binary result 0000 0000 1110 0001, which is decimal 225.

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

Consulte tambiénSee Also

Expresiones (Transact-SQL) Expressions (Transact-SQL)
Operadores (Transact-SQL) Operators (Transact-SQL)
Operadores bit a bit (Transact-SQL) Bitwise Operators (Transact-SQL)
^= (Asignación de OR exclusivo bit a bit) (Transact-SQL) ^= (Bitwise Exclusive OR Assignment) (Transact-SQL)
Operadores compuestos (Transact-SQL)Compound Operators (Transact-SQL)