& (AND bit a bit) (Transact-SQL)
Lleva a cabo una operación lógica AND bit a bit entre dos valores enteros.
Convenciones de sintaxis de Transact-SQL
Sintaxis
expression & expression
Argumentos
expression
Es cualquier expresión válida de un tipo de datos de la categoría de tipos de datos enteros, o del tipo de datos bit, binary o varbinary. expression se trata como un número binario en la operación bit a bit.
[!NOTA] En una operación bit a bit, sólo un argumento expression puede ser del tipo de datos binary o varbinary.
Notas
El operador & bit a bit realiza una operación lógica AND bit a bit entre las dos expresiones, y, para ello, utiliza el bit correspondiente de ambas. Los bits del resultado se establecen en 1 si y sólo si los dos bits (para el bit actual que se resuelve) de las expresiones de entrada tienen el valor 1; de otro modo, el bit del resultado se establece en 0.
Si las expresiones de la izquierda y de la derecha tienen tipos de datos enteros diferentes (por ejemplo, expression a la izquierda es smallint y expression a la derecha es int), el argumento del tipo de datos más pequeño se convierte al tipo de datos mayor. En este caso, expression de tipo smallint se convierte a int.
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 o bit.
Ejemplos
En el ejemplo siguiente se crea una tabla con el tipo de datos int para almacenar los valores, y se insertan dos valores en una misma fila.
USE tempdb;
GO
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'bitwise')
DROP TABLE bitwise;
GO
CREATE TABLE bitwise
(
a_int_value int NOT NULL,
b_int_value int NOT NULL
);
GO
INSERT bitwise VALUES (170, 75);
GO
Esta consulta realiza una operación AND bit a bit entre las columnas a_int_value
y b_int_value
.
USE tempdb;
GO
SELECT a_int_value & b_int_value
FROM bitwise;
GO
El conjunto de resultados es:
-----------
10
(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
. Al realizar la operación AND bit a bit con estos dos valores, se obtiene el resultado binario 0000 0000 0000 1010
, que es el 10 decimal.
(A & B)
0000 0000 1010 1010
0000 0000 0100 1011
-------------------
0000 0000 0000 1010
Vea también
Referencia
Expresiones (Transact-SQL)
Operadores (Transact-SQL)
Otros recursos
Bit a bit (operadores del motor de base de datos)