비트 연산자에 대한 이해가 없다면, 아래 내용을 이해하기 힘들 수 있습니다.

👀 개요

컴퓨터는 10진수를 계산하고, 다른 언어들을 인식하고 계산하는 것처럼 보일 때가 많지만, 결국은 주어진 데이터를 모두 2진수로 인식한다.

전기신호가 0이면 off, 1이면 on인 것을 확인하여 연산하는 것이다. 이와 같이 boolean 또한, true는 1과 같고, false는 0과 같다.

우리가 프로그램을 작성할 때, 상태를 확인하기 위해 플래그를 boolean(또는 int)변수로 생성하여 on, off를 확인하는 경우가 많은데, 플래그가 많이 필요할 때 모든 플래그를 변수로 생성하여 하나하나 확인하는 방식은 코드가 길어질 뿐더러, 더 많은 연산을 수행해야한다.

하지만, 컴퓨터가 계산하는 방식과 같이 비트로 플래그를 처리하면 int형 변수(클러스터 환경 32bits) 하나로 32개의 플래그를 처리할 수 있다. (char 형 변수 하나로 8개 플래그)

💫 플래그 처리

개요에서 비트 연산을 통해 플래그를 사용하는 이유를 알았으니, 이제 어떻게 사용해야 하는 지 알아보자 (32비트를 다 적으면 많기 때문에, 8비트인 char 형 예시로 보자)

char형 변수 선언

우선, 모든 플래그false인 상태로 변수를 선언한다.

비트(플래그) 켜기

위에서 선언한 flag 변수의 비트를 왼쪽부터 각각 7에서 0번 플래그라고 하자. 그리고 0, 1, 2, 3 플래그를 기상, 아침, 점심, 저녁식사 여부라고 할 때, 일어나서 점심만 먹었다면 0번, 2번 플래그를 켜줘야 한다.