Python Basic Syntax (파이썬 기초 문법)/Operators (연산자)

Bitwise Operators (비트 연산자)

영끼끼 2025. 2. 17. 14:43

✅Bitwise Operators(비트 연산자)

Python에서는 비트 연산자 (Bitwise Operators) 를 사용하여 이진수 단위로 연산을 수행할 수 있습니다. 비트 연산자는 빠른 계산이 가능하여 최적화, 암호화, 네트워크 프로그래밍 등에서 많이 활용됩니다.


1️⃣ 비트 연산자 개요

연산자 설명 예제 (x=5, y=3) 결과 (2진수 연산)

연산자 설명 예제(x=5, y=3) 결과 (2진수 출력)
& 비트 AND 5 & 3 0b0001 (1)
| 비트 OR 5 | 3 0b0111 (7)
^ 비트 XOR 5 ^ 3 0b0110 (6)
~ 비트 NOT ~5 0b...1010 (-6)
<< 왼쪽 시프트 5 << 1 0b1010 (10)
>> 오른쪽 시프트 5 >> 1 0b0010 (2)

 

예제 코드

x, y = 5, 3  # 5: 0b0101, 3: 0b0011
print(x & y)  # 1 (0b0001)
print(x | y)  # 7 (0b0111)
print(x ^ y)  # 6 (0b0110)
print(~x)     # -6 (비트 반전)
print(x << 1) # 10 (0b1010)
print(x >> 1) # 2 (0b0010)

2️⃣ 비트 연산자의 활용

비트 마스크(Bit Masking)

특정 비트를 추출하거나 변경하는 데 사용됩니다.

num = 0b101010  # 42
mask = 0b001100  # 12
print(num & mask)  # 8 (0b001000)

 

짝수/홀수 판별 (비트 AND 활용)

def is_even(n):
    return (n & 1) == 0  # 마지막 비트가 0이면 짝수

print(is_even(10))  # True
print(is_even(7))   # False

 

값을 2의 배수로 만들기 (비트 OR 활용)

num = 5
num |= 1  # 5는 그대로, 짝수면 +1 해서 홀수로 만듦
print(num)  # 5

 

비트 XOR을 활용한 값 교환 (스왑)

a, b = 10, 20
a ^= b
b ^= a
a ^= b
print(a, b)  # 20, 10 (값이 교환됨)

 

비트 시프트를 활용한 빠른 곱셈과 나눗셈

  • x << n → x * (2^n) (곱셈)
  • x >> n → x // (2^n) (나눗셈)
x = 4
print(x << 2)  # 16 (4 * 2^2)
print(x >> 1)  # 2 (4 // 2^1)

📝 마무리 정리

연산자 설명
& 비트 AND (둘 다 1일 때만 1)
| 비트 OR (하나라도 1이면 1)
^ 비트 XOR (다르면 1, 같으면 0)
~ 비트 NOT (비트 반전)
<< 왼쪽 시프트 (2배 증가)
>> 오른쪽 시프트 (2배 감소)

📌 비트 연산자를 이해하면 최적화된 코드를 작성할 수 있습니다!