bitMask 구조

위 그림은 word 데이터 타입이라 가정했으며 16bit 이므로 16개의 0으로 표시 했습니다. bitMask 알고리즘은 이 0과 1로만 표시 할 수 있는 16개의 데이터를 다루는 것을 의미합니다.
bitMask 연산자
& = and 연산자
| = or 연산자
^ = xor 연산자
~ = not 연산자
bitMask 연산

(bitMask & 0) 연산은 모든 비트를 0과 AND 연산해서 0으로 만드는 연산 입니다.

~(bitMask) 연산은 0의 값을 1로 1의 값은 0으로 만드는 연산 입니다.

(bitMask | (1 << 3)) 연산은 3번째 자리 값을 1로 설정하는 연산 입니다. 이와 비슷하게 (bitMask & (1 << 3)) 는 3번째 비트의 값이 1인지 체크하는 연산 입니다.

(bitMask | ~(bitMask) 또는 (bitMask ^ ~(bitMask) 연산은 모든 비트의 값을 1로 만드는 연산 입니다.

(bitMask >> 1) 연산은 모든 비트의 값을 오른쪽으로 한칸씩 이동 시키면서 15번째 비트의 값은 0으로 채우며 0번째 비트의 값은 버립니다.

(bitMask << 1) 연산은 모든 비트의 값을 왼쪽으로 한칸씩 이동 시키면서 0번째 비트의 값은 0으로 채우며 15번째 비트의 값은 버립니다.
bitMask 활용
bitMask는 메모리를 극단적으로 활용하는 연산입니다. int 데이터 타입을 선언할때 보통은 값 하나만 담는 변수라고 보지만 비트 연산을 알게되면 32bit를 모두 활용하여 bool [32]와 같은 역할로 활용 할 수 있게 됩니다.
'알고리즘' 카테고리의 다른 글
| Topological Sorting (0) | 2024.06.22 |
|---|---|
| Binary Search (0) | 2024.06.18 |
| Dynamic Programming (0) | 2024.06.17 |
| BackTracking (0) | 2024.06.16 |
| BFS, DFS (0) | 2024.06.14 |