연산자
산술 연산자
비트 연산자
인수는 정수 데이터 형식 범주에 속하는 데이터 형식, bit, binary 또는 varbinary 데이터 형식 중 하나인 유효한 식이다.
expression은 비트 연산의 이진 숫자로 처리된다.
결과 값은 입력 값이 int이면 int다.
결과 값은 입력 값이 smallint이면 smallint다.
결과 값은 입력된 값이 tinyint 또는 bit인 경우 tinyint다.
&
두 정수 값 간에 비트 논리 AND 연산을 수행한다.
& 비트 연산자는 두 식 간에 비트 논리 AND를 수행하고 양쪽 식에서 해당 비트를 취한다.
결과의 비트는 입력 식에 있는 양쪽 비트(확인 중인 현재 비트)의 값이 1이면 1로 설정되고 그렇지 않으면 0으로 설정된다.
왼쪽과 오른쪽 식의 정수 데이터 형식이 서로 다르면(예: 왼쪽 식은 smallint이고 오른쪽 식은 int임) 더 작은 데이터 형식의 인수가 더 큰 데이터 형식으로 변환된다.
이 경우에 smallint식이 int로 변환된다.
구문
expression & expression
값을 저장하기 위해 int 데이터 형식을 사용하여 테이블을 만들고 두 값을 한 행에 삽입
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를 수행
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이다.
|
이진 식으로 변환되는 두 개의 지정된 정수 값 간에 비트 논리 OR 연산을 수행한다.
비트 | 연산자는 양쪽 식에 해당 비트를 취하면서 두 식 간에 비트 논리 OR를 수행한다.
결과의 비트는 입력 식의 두 비트(확인 중인 현재 비트) 중 하나 또는 둘 모두의 값이 1이면 1로 설정된다.
입력 식에 값이 1인 비트가 없으면 결과의 비트는 0으로 설정된다.
왼쪽과 오른쪽 식의 정수 데이터 형식이 서로 다르면(예: 왼쪽 식은 smallint이고 오른쪽 식은 int임) 더 작은 데이터 형식의 인수가 더 큰 데이터 형식으로 변환된다.
이 예제에서는 smallint식이 int로 변환된다.
구문
expression | expression
원래 값을 표시하도록 int 데이터 형식의 테이블을 만들고 테이블을 하나의 행에 삽입
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 열에 대해 비트 OR를 수행
SELECT a_int_value | b_int_value FROM bitwise; GO
235
(1 row(s) affected)
170(a_int_value 또는 아래 A)의 이진 표현은 0000 0000 1010 1010이다.
75(b_int_value 또는 아래 B)의 이진 표현은 0000 0000 0100 1011이다.
이 두 값에 비트 OR 연산을 수행하면 10진수 235에 해당되는 이진 결과 0000 0000 1110 1011이 산출된다.
^
두 정수 값 사이에 배타적 비트 OR 연산을 수행한다.
^ 비트 연산자는 양쪽 연산에 해당 비트를 받아서 두 식 간에 배타적 비트 논리 OR를 수행한다.
결과 비트는 입력 식에 있는 두 비트(확인 중인 현재 비트) 중 하나의 값이 1이면 1로 설정된다.
양쪽 비트 값이 모두 0 또는 1이면 결과 비트는 0으로 처리된다.
왼쪽과 오른쪽 식의 정수 데이터 형식이 서로 다르면(예: 왼쪽 식은 smallint이고 오른쪽 식은 int임) 더 작은 데이터 형식의 인수가 더 큰 데이터 형식으로 변환된다.
이 경우에 smallint식이 int로 변환된다.
구문
expression ^ expression
원래 값을 저장하기 위해 int 데이터 형식을 사용하여 원래 값을 저장하는 테이블을 만들고 한 행에 두 개의 값을 삽입
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 열에 배타적 비트 OR를 수행
SELECT a_int_value ^ b_int_value FROM bitwise; GO
225
(1 row(s) affected)
170의 이진 표현(a_int_value 또는 A)은 0000 0000 1010 1010이다.
75의 이진 표현(b_int_value 또는 B)은 0000 0000 0100 1011이다.
이러한 두 값에 배타적 비트 OR 연산을 수행하면 결과는 이진수 0000 0000 1110 0001이며 십진수로는 225다.