&(비트 AND)(Transact-SQL)
두 정수 값 간에 비트 논리 AND 연산을 수행합니다.
구문
expression & expression
인수
expression
정수 데이터 형식 범주에 속하는 데이터 형식, bit, binary 또는 varbinary 데이터 형식 중 하나인 유효한 식입니다. expression은 비트 연산에서 이진 숫자로 취급됩니다.[!참고]
비트 연산에서는 하나의 expression만 binary 또는 varbinary 데이터 형식이 될 수 있습니다.
결과 유형
입력 값이 int인 경우 int입니다.
입력 값이 smallint인 경우 smallint입니다.
입력 값이 tinyint 또는 bit인 경우 tinyint입니다.
주의
& 비트 연산자는 두 식 간에 비트 논리 AND를 수행하고 양쪽 식에서 해당 비트를 취합니다. 결과의 비트는 입력 식에 있는 양쪽 비트(확인 중인 현재 비트)의 값이 1이면 1로 설정되고 그렇지 않으면 0으로 설정됩니다.
왼쪽과 오른쪽 식의 정수 데이터 형식이 서로 다르면(예: 왼쪽 expression은 smallint이고 오른쪽 expression은 int임) 더 작은 데이터 형식의 인수가 더 큰 데이터 형식으로 변환됩니다. 이 경우 smallint expression이 int로 변환됩니다.
예
다음 예에서는 값을 저장하기 위해 int 데이터 형식을 사용하여 테이블을 만들고 두 값을 한 행에 삽입하는 방법을 보여 줍니다.
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
이 쿼리는 a_int_value와 b_int_value 열 간에 비트 AND를 수행합니다.
USE tempdb;
GO
SELECT a_int_value & b_int_value
FROM bitwise;
GO
결과 집합은 다음과 같습니다.
-----------
10
(1 row(s) affected)
170의 이진 표현(a_int_value 또는 A)은 0000 0000 1010 1010입니다. 75의 이진 표현(b_int_value 또는 B)은 0000 0000 0100 1011입니다. 이 두 값에 대해 비트 AND 연산을 수행하면 이진수로 0000 0000 0000 1010이 산출되며 십진수로는 10입니다.
(A & B)
0000 0000 1010 1010
0000 0000 0100 1011
-------------------
0000 0000 0000 1010