비트연산 테크닉 2. 비트마스크

윤익후·2020년 7월 10일
0

비트연산 테크닉

목록 보기
2/2
post-thumbnail

비트마스크에 대하여

변수를 1bit씩 사용하여 자료형 (int, long long) 등을
Boolean타입의 배열처럼 사용하는 것이다.
메모리가 중요하던 시절, 여러가지 상태값이나 2~3bit의 값을
1Byte에 집어넣어 사용하던 것이다.
대표적으로는 고전게임에 존재하는 flag 라고 불리는 상태코드가 있다.

비트마스크의 연산

n번 비트 확인하기

check&(1<<n)

check의 n번 비트를 확인하고 싶을 때,
n번 비트만 1인 수와 bit AND 연산을 하면
n번 비트가 존재할경우 (1<<n), 존재하지 않을 경우 0이 나온다.

n번 비트 1로 만들기

check|=(1<<n)

check의 1번 비트를 1로 만들고 싶을 때,
n번 비트만 1인 수와 bit OR 연산을 하면
n번째 비트가 1이 된다.

n번 비트 0으로 만들기

check &= ~(1<<n)

check의 n번 비트를 0으로 만들고 싶을 때,
n번 비트만 1인수에 bit NOT 연산을 하면
n번 비트만 0인 수가 된다.
이 값을 check와 bit AND 연산을 하면,
나머지 비트는 check의 비트를 따라가고, n번 비트만 0이 된다.

값이 1인 가장 작은자리 비트 찾기

check & -check

원래 값의 2의 보수와 bit AND 연산을 하여 구할 수 있다.
추후에 펜윅 트리 라는 자료구조를 구현할 때 응용된다.

0개의 댓글