Algorithm/📚 Concept

[알고리즘 개념] 비트마스크

키깡 2022. 8. 7.
728x90

AND 연산

대응하는 두 비트가 모두 1일 때만 1 반환
1010 & 1111 = 1010

OR 연산

대응하는 두 비트가 하나라도 1일 때 1 반환
1010 | 1111 = 1111

XOR 연산

대응하는 두 비트가 다를 때 1 반환
1010 ^ 1111 = 0101

NOT 연산

비트 값 반전
~1010 = 0101

시프트 연산

  1. 2칸 왼쪽으로 이동
    00001010 << 2 = 101000
  2. 2칸 오른쪽으로 이동
    00001010 >> 2 = 000010

비트 삽입, 삭제

비트 삽입

만약 1010에서 2^2 자리에 1을 삽입하고 싶다. ( = 1110으로 만들고 싶다.)

=> 1010 | 0100을 하면 될 것.

또는

1010 | 1 << 2 를 하면,
1<<2 == 0100 이라 같은 표현임.

비트 삭제

만약 1110에서 2^2자리에서 1을 삭제하고 싶다. ( = 1010으로 만들고 싶다.)

=> 1110 & 1011 을 하면 될 것.

또는

1110 & ~(1<<2) 를 하면,
~(1<<2) == 1011 이라 같은 표현임.

댓글