&(AND bit a bit) (Transact-SQL)
Executa uma operação lógica AND bit a bit entre dois valores inteiros.
Convenções da sintaxe Transact-SQL
Sintaxe
expression & expression
Argumentos
expression
É qualquer expressão válida de qualquer um dos tipos de dados da categoria de tipo de dados inteiro ou os tipos de dados bit ou binary ou varbinary. expression é tratado como um número binário para a operação bit a bit.Observação Em uma operação bit a bit, somente uma expression pode ser do tipo de dados binary ou varbinary.
Tipos de resultado
int se os valores de entrada forem int.
smallint se os valores de entrada forem smallint.
tinyint se os valores de entrada forem tinyint ou bit.
Comentários
O operador bit a bit & executa um AND 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 e somente se os dois bits (para o bit atual a ser resolvido) nas expressões de entrada tiverem um valor de 1; caso contrário, o bit no resultado será definido como 0.
Se as expressões à esquerda e à direita tiverem tipos de dados inteiros diferentes (por exemplo, a expression à esquerda for smallint e a expression à direita for int), o argumento do tipo de dados menor será convertido no tipo de dados maior. Nesse caso, smallint expression é convertida em um int.
Exemplos
O exemplo a seguir cria uma tabela usando o tipo de dados int para armazenar os valores e insere os dois valores em uma linha.
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 executa o AND bit a bit nas colunas a_int_value e b_int_value.
USE tempdb;
GO
SELECT a_int_value & b_int_value
FROM bitwise;
GO
Este é o conjunto de resultados:
-----------
10
(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 AND bit a bit nesses dois valores produz o resultado binário 0000 0000 0000 1010, que é o decimal 10.
(A & B)
0000 0000 1010 1010
0000 0000 0100 1011
-------------------
0000 0000 0000 1010
Consulte também
Referência
Operadores bit a bit (Transact-SQL)