잡다한 지식

bit-mask

컴영 2020. 4. 4. 18:59

Bit mask 비트마스크


  • 정수를 이진수 표현으로 사용하는 것을 비트 마스크라고한다.

((컴퓨터는 정수형 변수를 이진수로 표현.))

비트가 1이면, true 켜져있다.

비트가 0이면, false 꺼져있다.


N개의 비트가 있을 때 

정수의 최소값은  0

정수의 최대값은 2^N - 1


  • 연산 종류

1. AND 연산 : &

2. OR 연산 : |

3. XOR연산 : ^

4. NOT연산 : ~

5. SHIFT연산 : <<, >>

   a << b : a * 2^b

   a >> b : a / 2^b


  • 예를 들어 6개의 비트가 있다면.

0 0 0 0 0 0 ~ 1 1 1 1 1 1 : 0부터 63까지 표현이 가능하다.


특정 n번째 비트를 1로 바꾸는 방법은

int temp =0; 

temp |= (1 << n);


특정 n번째 비트를 0으로 바꾸는 방법은

temp &= ~(1 << n);


특정 n번째 비트를 반전시키는 방법은

temp ^= (1 << n);


특정 n번째 비트가 1인지 확인하는 방법은

if(temp & (1 << n))    -> true를 반환하는 것은 n번째 비트가 1이라는 뜻이다.