ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 비트연산자와 비트마스크
    알고리즘 문제풀이/Python 2020. 2. 9. 14:26

     

     

    파이썬의 비트연산자의 종류는 다음과 같다.

     

    a = 60 (0011 1100)

    b = 13 (0000 1101)

     

    Operator       Description       Example

    & AND 연산. 둘다 참일때만 만족 (a & b) = 12 → 0000 1100
    | OR 연산. 둘 중 하나만 참이여도 만족 (a | b) = 61 → 0011 1101
    ^ XOR 연산. 둘 중 하나만 참일 때 만족 (a ^ b) = 49 → 0011 0001
    ~ 보수 연산. (~a) = -61 → 1100 0011
    << 왼쪽 시프트 연산자. 변수의 값을 왼쪽으로 지정된 비트 수 만큼 이동 a << 2 = 240 → 1111 0000
    >> 오른쪽 시프트 연산자. 변수의 값을 오른쪽으로 지정된 비트 수 만큼 이동 a >> 2 = 15 → 0000 1111

     

    비트마스크

    데이터를 저장하기 위해 이진수를 사용한다.

     

    비트마스크는 특정 값 여러개를 하나의 정수로 표현하여, 이를 배열의 인덱스로 각 값을 활용가능하다.

     

    1 << n

    2^n을 의미하는 것으로, 원소가 n개일 경우의 모든 부분집합의 수를 의미한다.

    각 원소가 포함되거나 포함되지 않는 2가지의 경우를 가진 모든 부분집합의 수

     

    i & ( 1 << j )

    i의 j번째 비트가 1인지 확인할 수 있다.  

     

     

    댓글

Designed by Tistory.