기본 비트 연산자
OR 연산 (|)
// 둘 중 하나라도 1이면 1
9 | 20
// 01001 (9)
// 10100 (20)
// ----- OR
// 11101 (29)
AND 연산 (&)
// 둘 다 1이어야 1
9 & 20
// 01001 (9)
// 10100 (20)
// ----- AND
// 00000 (0)
XOR 연산 (^)
// 서로 다르면 1, 같으면 0
10 | 12
// 1010 (10)
// 1100 (12)
// ---- XOR
// 0110 (6)
NOT 연산 (~)
// 0은 1로, 1은 0으로
~1010 = 0101
시프트 연산 (<<, >>)
1 << 2 # 1을 왼쪽으로 2칸 이동
# 001 → 100 (4가 됨)
8 >> 2 # 8을 오른쪽으로 2칸 이동
# 1000 → 0010 (2가 됨)
비트 조작 기본 패턴
특정 비트 설정 (Set)
// n번째 비트를 1로 설정
number |= (1 << n)
10 |= (1 << 2) // 10 | 4 = 14
1010 | 0100 = 1110
특정 비트 클리어 (Clear)
// n번째 비트를 0으로 클리어
number &= ~(1 << n)
15 &= ~(1 << 2) // 15 & ~4 = 15 & 11 = 11
1111 & 1011 = 1011
특정 비트 토글 (Toggle)
// n번째 비트 반전
number ^= (1 << n)
예시:
10 ^= (1 << 2) // 10 ^ 4 = 14
1010 ^ 0100 = 1110
특정 비트 확인 (Check)
// n번째 비트가 1인지 확인
(number & (1 << n)) != 0
15 & (1 << 2) = 15 & 4 = 4 ≠ 0 // true
1111 & 0100 = 0100 ≠ 0
'알고리즘' 카테고리의 다른 글
[Swift] 순열 구현하기 feat.재귀 (0) | 2025.06.19 |
---|