Compartir a través de


& (AND bit a bit) (Transact-SQL)

Realiza una operación lógica AND bit a bit entre dos valores enteros.

Se aplica a: SQL Server (SQL Server 2008 a versión actual), Windows Azure SQL Database (Versión inicial a versión actual).

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL

Sintaxis

expression & expression

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

    En una operación bit a bit, solo una expression puede ser del tipo de datos binary o varbinary.

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.

Comentarios

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 solo 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 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, el valor smallint en expression se convierte en int.

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 en notación 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)

Operadores bit a bit (Transact-SQL)

&= (AND bit a bit igual) (Transact-SQL)

Operadores compuestos (Transact-SQL)