✅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배 감소) |
📌 비트 연산자를 이해하면 최적화된 코드를 작성할 수 있습니다!
'Python Basic Syntax (파이썬 기초 문법) > Operators (연산자)' 카테고리의 다른 글
Infix Notation & Postfix Notation (중위 & 후위 표기법) (1) | 2025.02.17 |
---|---|
Ternary Operator (삼항 연산자) (0) | 2025.02.17 |
Membership & Identitiy Operators (멤버십 & 아이덴티티 연산자) (0) | 2025.02.17 |
Assignment Operators (할당 연산자) (0) | 2025.02.17 |
Basic Operators (기본 연산자) (0) | 2025.02.17 |