Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python 비트 연산자의 종류와 활용 방법 총정리

Python 비트 연산자란?

비트 연산자(Bitwise Operator)는 정수를 이진수 비트 단위로 변환한 뒤, 각 비트를 피연산자로 하여 연산을 수행하는 연산자입니다. Python에서는 다음과 같은 여섯 가지 비트 연산자가 제공됩니다.

Python에서 지원하는 비트 연산자

  • & (비트 AND): 두 비트가 모두 1일 때만 1을 반환합니다.
  • | (비트 OR): 두 비트 중 하나라도 1이면 1을 반환합니다.
  • ^ (비트 XOR): 두 비트가 서로 다를 때(하나는 1, 하나는 0)만 1을 반환합니다.
  • ~ (비트 보수): 피연산자가 0이면 1을, 1이면 0을 반환하여 비트를 반전시킵니다.
  • << (왼쪽 시프트): 비트를 왼쪽으로 이동시키고, 오른쪽 빈 자리는 0으로 채웁니다.
  • >> (오른쪽 시프트): 비트를 오른쪽으로 이동시키고, 왼쪽 빈 자리는 0으로 채웁니다.

비트 연산자 예제

예를 들어 a = 60(이진수 0011 1100), b = 13(이진수 0000 1101)이라고 가정해 보겠습니다.

a & b = 0000 1100 = 12
a | b = 0011 1101 = 61
a ^ b = 0011 0001 = 49
~a = 1100 0011 = -61
a << 2 = 1111 0000 = 240
a >> 2 = 0000 1111 = 15

비트 연산자의 주요 활용 분야

비트 연산자는 일반적인 산술 연산보다 처리 속도가 빠르기 때문에 다양한 분야에서 활용됩니다. 대표적인 활용 사례는 다음과 같습니다.

  • 플래그(flag) 관리: 여러 개의 참/거짓 상태를 하나의 정수로 효율적으로 저장하고 제어할 수 있습니다.
  • 권한(permission) 처리: 읽기, 쓰기, 실행 권한 등을 비트 조합으로 표현하여 관리합니다.
  • 네트워크 프로그래밍: IP 주소와 서브넷 마스크 계산에 필수적으로 사용됩니다.
  • 임베디드 및 저수준 프로그래밍: 하드웨어 레지스터 제어나 메모리 최적화에 활용됩니다.

특히 왼쪽 시프트(<<)는 값에 2의 거듭제곱을 곱하는 것과 동일한 효과가 있고, 오른쪽 시프트(>>)는 2의 거듭제곱으로 나누는 것과 같은 결과를 내므로, 곱셈·나눗셈을 빠르게 수행해야 하는 경우에도 유용하게 사용됩니다.