비트 연산자

Joo·2024년 6월 19일

RDB & SQL

목록 보기
24/24

비트 연산자

단순 논리 연산자와 달리 비트(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;
profile
적당히 공부한 거 정리하는 곳

0개의 댓글