SQL

[SQL] 비트 연산

주댕이 2025. 4. 1. 15:39

1. MySQL 비트 연산자 종류

연산자 연산 설명
& AND 두 숫자가 모두 1이면 1을 반환
| OR 두 숫자 중 하나라도 1이면 1을 반환
^ XOR 두 숫자가 다르면 1을 반환
~ NOT 모든 비트를 반전
<< 왼쪽 시프트 비트를 왼쪽으로 이동 (2의 n제곱 곱하기)
>> 오른쪽 시프트 비트를 오른쪽으로 이동 (2의 n제곱 나누기)

 

2. 예제

(1) 비트 AND (&)

두 값의 각 비트가 모두 1일 때만 1을 반환한다.

SELECT 6 & 3;

 

결과: 2

더보기

설명

  • 6 (110₂)
  • 3 (011₂)
  • 6 & 3 = 010₂ = 2

 

(2) 비트 OR (|)

두 값 중 하나라도 1이면 1을 반환한다.

SELECT 6 | 3;

 

결과: 7

더보기

설명

  • 6 (110₂)
  • 3 (011₂)
  • 6 | 3 = 111₂ = 7

 

(3) 비트 XOR (^)

두 값이 다를 때만 1을 반환한다.

SELECT 6 ^ 3;

 

결과: 5

더보기

설명

  • 6 (110₂)
  • 3 (011₂)
  • 6 ^ 3 = 101₂ = 5

 

(4) 비트 NOT (~)

비트를 반전(0 <-> 1)시킨다. (2의 보수 연산이 적용되므로 결과값이 음수로 나옴)

SELECT ~6;

 

결과: -7

더보기

설명

  • 6 (00000110₂)
  • ~6 = 11111001₂ = -7 (2의 보수 적용)

 

(5) 비트 왼쪽 시프트 (<<)

비트를 왼쪽으로 n칸 이동시킨다. (값 * 2^n)

SELECT 3 << 2;

 

결과: 12

더보기

설명

  • 3 (0011₂) << 2
  • 1100₂ = 12

 

(6) 비트 오른쪽 시프트 (>>)

비트를 오른쪽으로 n칸 이동시킨다. (값 / 2^n)

SELECT 12 >> 2;

 

결과: 3

더보기

설명

  • 12 (1100₂) >> 2
  • 0011₂ = 3

 


 


 

728x90

'SQL' 카테고리의 다른 글

[SQL] 재귀 CTE(Recursive CTE)  (0) 2025.04.10
[SQL] SQL 정규 표현식 (SQL Regular Expression)  (0) 2025.01.12
[SQL] 가독성 높이기  (0) 2025.01.08
[SQL] INSTR()  (0) 2024.12.19
[SQL] SUBSTR()  (0) 2024.12.19