TIL
🌱 난 오늘 무엇을 공부했을까?
📌 비트마스크(BitMask)
- 정수를 이진수로 표현하고 비트 연산을 통해 문제를 해결하는 기술
📍 장점
- 비트연산을 통한 삽입, 삭제, 조회 등이 간단해짐
- 더 간결한 코드 작성이 가능
- 더 빠른 연산이 가능
- 비트마스크를 이용한 정수 표현으로 다이나믹 프로그래밍이 가능.
📍 비트연산
종류 | 설명 | 연산자 |
---|
AND | 두 bit 모두 1 이면 1, 아니면 0 | & |
OR | 두 bit 중 하나라도 1이면 1 | | |
XOR | 두 bit가 서로 다르면 1, 같으면 0 | ^ |
NOT | bit가 1이면 0, 0이면 1 | ~ |
Left-shift | bit를 왼쪽으로 n칸만큼 옮기고 n칸은 0으로 채운다. | << |
Right-shift | bit를 오른쪽으로 n칸만큼 옮기고 n칸은 0으로 채운다. | >> |
📍 비트 연산 사용
var number = (1<<1) {
didSet {
print(number)
print(bitNumber)
}
}
var bitNumber: String {
String(number, radix: 2)
}
number = number | (1<<3)
number = number & ~(1<<3)
number = number & (1<<3)
number = number ^ (1<<3)