SQL에서 비트 연산자는 다음과 같이 사용할 수 있다:
- & (AND): 두 비트가 모두 1일 때 1, 그렇지 않으면 0
- | (OR): 두 비트 중 하나라도 1일 때 1, 그렇지 않으면 0
- ^ (XOR): 두 비트가 다를 때 1, 같을 때 0
- ~ (NOT): 각 비트를 반전 (0을 1로, 1을 0으로)
활용 방법 중 한가지는, A & B = B가 성립한다면, 이진수 상으로 B가 A에 속해 있다는 의미가 된다.
따라서 A & 2^n = 2^n 을 해주면, A를 2진수로 변환했을 때 n+1번째 자리가 1인지 여부를 파악할 수 있다.
예시를 들어 설명해보자. 예를 들어 A가 13이고, n이 2일 때를 생각해보자.
- 13을 2진수로 변환하면 1101이 된다.
- 2^2는 4이며, 2진수로 0100이 된다.
- 13 & 4 = 4(0100)이 되므로, 13의 2진수 표현에서 3번째 자리가 1임을 알 수 있다.
이를 통해 SQL에서 비트 연산자를 활용하여 특정 비트가 1인지 확인하는 방법을 알 수 있다.
'Algorithm > programmers' 카테고리의 다른 글
[Python] 멀리 뛰기 (1) | 2023.12.22 |
---|---|
[Python] N개의 최소공배수 (2) | 2023.12.22 |
[Python] 예상 대진표 (1) | 2023.12.22 |
[Python] n^2 배열 자르기 (1) | 2023.12.21 |
[Python] 구명보트 (1) | 2023.12.20 |