& (Bitwise AND) (Transact-SQL)
Wykonuje operację i logicznych bitowe między dwiema wartościami liczby całkowitej.
expression & expression
Argumenty
expression
Is any valid expression of any of the data types of the integer data type category, or the bit, or the binary or varbinary data types.expression is treated as a binary number for the bitwise operation.Uwaga
W operacji bitowe, tylko jeden expression może być: binary lub varbinary Typ danych.
Typy wynik
int w przypadku wartości wejściowych int.
smallint w przypadku wartości wejściowych smallint.
tinyint w przypadku wartości wejściowych tinyint lub bit.
Remarks
The & bitwise operator performs a bitwise logical AND between the two expressions, taking each corresponding bit for both expressions.Liczba bitów w wyniku są ustawione na 1, gdy i tylko wtedy, gdy oba bity (dla bieżącego bit zamieniana) w danych wejściowych wyrażenia mają wartość 1; w przeciwnym wypadku bit w wyniku jest równa 0.
Jeśli wyrażenia lewe i prawe mają całkowitą różnych typów danych (na przykład, w lewo expression jest smallint i w prawo expression jest int), argument mniejszy typ danych jest konwertowana na większy typu danych. In this case, the smallintexpression is converted to an int.
Przykłady
W następującym przykładzie zostanie utworzony przy użyciu tabela int dane wpisz do przechowywania wartości i wstawia dwie wartości w jednym wierszu.
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
Ta kwerenda wykonuje bitowe AND między a_int_value i b_int_value kolumny.
USE tempdb;
GO
SELECT a_int_value & b_int_value
FROM bitwise;
GO
Poniżej znajduje się zestaw wyników:
-----------
10
(1 row(s) affected)
Reprezentacja binarna 170 (a_int_value lub A) jest 0000 0000 1010 1010. Reprezentacja binarna 75 (b_int_value lub B) jest 0000 0000 0100 1011. Wykonywanie operacji bitowe i w tych dwóch wartości daje wynik binarne 0000 0000 0000 1010, czyli 10 dziesiętnej.
(A & B)
0000 0000 1010 1010
0000 0000 0100 1011
-------------------
0000 0000 0000 1010