비트마스크 기초편

어려운 비트마스크

비트마스크는 알고리즘을 풀 때 간간히 필요합니다.

비트마스크 없이는 못 푸는 문제를 점점 많이 접하게 되서 공부차 올립니다.

비트마스크를 사용한 코드의 장점

  • 더 빠른 수행 시간
  • 더 간결한 코드
  • 더 작은 메모리 사용량
  • 연관 배열을 배열로 대체 : boolean으로 체크하는 배열을 비트마스크를 써서 int[]로 나타낼 수 있다. 큰 시간과 메모리 차이를 불러온다.

비트마스크 사용법

8개의 비트를 사용하고자 한다.

int bitmask를 비트마스크 변수로 선언한다.

비트는 맨 오른쪽 비트가 0번 비트고 총 8개 비트면 0~7의 범위를 갖는다.

bitmask 변수의 우측 8개 비트만 사용한다는 것이다.

비트 상태 0 : 꺼짐. 1 : 켜짐

bitmask

이런식이 된다.

배열로 표현한다면 idx[8]={1,2,4,8,16,32,64,128}; 이 된다.

idx[n]==(1«n) 이다. 연산자 우선순위에 유의한다

비트 기본 연산

비트연산

비트마스크 기본 문제

이진수 연산

집합

데스스타