비트마스크란 ?

이진수 표현을 자료구조로 쓰는 기법이다.

비트 연산자

비교 연산자 → 비트 연산자의 우선순위

집합의 구현

int noPizza = 0; // 공집합
int fullPizza = (1 << 20) - 1; // 꽉찬 피자

0부터 19까지의 번호를 가진 토핑을 가진 피자집이 있다.

20개의 토핑을 모두 올린 피자는 아래와 같이 표현할 수 있는데, 20개의 0을 가진 비트를 만들고 1을 뺴면 20개의 비트가 모두 켜진 수를 얻을 수 있다.

p번째 있는 토핑을 추가하고 싶으면, 현재 토핑 목록인 toppings에 p비트만 켜진 정수를 비트별 OR 처리하면 된다

toppings |= (1 << p);