단순 논리 연산자와 달리 비트(bit) 단위로 연산을 수행하는 것
각각 AND, OR, XOR, NOT 연산을 수행함
※ 비트(bit) : 데이터의 가장 작은 단위 (참고로 8 bit = 1 byte)
| 비트 연산자 - MySQL | 기능 |
|---|---|
| & , BITAND (Oracle) | (AND) 대응되는 비트가 모두 1이면 1을 반환 |
| | | (OR) 대응되는 비트 중에서 하나라도 1이면 1을 반환 |
| ^ | (XOR) 대응되는 비트가 서로 다르면 1을 반환 |
| ~ | (NOT) 비트를 1이면 0으로, 0이면 1로 반전 |
| << | (Left Shift) 지정한 수만큼 비트를 전부 왼쪽으로 이동 |
| >> | (Right Shift) 부호를 유지하면서 지정한 수만큼 비트를 전부 오른쪽으로 이동 |
⌨️ 예시
-- BITAND 사용 예시 SELECT BITAND(5, 3) AS result FROM dual; -- 결과: 1 (0101 & 0011 = 0001) -- 비트 OR 연산자 사용 예시 SELECT 5 | 3 AS result FROM dual; -- 결과: 7 (0101 | 0011 = 0111) -- 비트 XOR 연산자 사용 예시 SELECT 5 ^ 3 AS result FROM dual; -- 결과: 6 (0101 ^ 0011 = 0110) -- 비트 NOT 연산자 사용 예시 SELECT ~5 AS result FROM dual; -- 결과: -6 (NOT 0101 = 1010 in 2's complement, which is -6) ? -- 비트 시프트 연산자 사용 예시 SELECT 5 << 1 AS left_shifted, -- 결과: 10 (0101 << 1 = 1010) 5 >> 1 AS right_shifted -- 결과: 2 (0101 >> 1 = 0010) FROM dual;