Python
[Python] 파이썬 정수 비트연산 (Feat.비트연산자)
Hyper_
2023. 8. 19. 17:00
- 파이썬에서 비트연산자를 이용하여 정수에 대한 비트연산을 할 수 있습니다.
- 비트연산자의 종류에는 AND, OR, XOR, NOT, >>, <<가 있습니다.
- 파이썬 비트 연산은 알고리즘 문제나 시스템 프로그래밍, 그래픽 처리에서 종종 유용하게 활용됩니다.
- 그럼 지금부터 파이썬 비트연산자와 예시에 대해 살펴보겠습니다.
1. AND &
- 두 비트가 모두 1일 때만 결과가 1이 됩니다.
- 예: 5 & 3 -> 0101 & 0011 = 0001 (결과는 1)
2. OR |
- 두 비트 중 하나라도 1이면 결과가 1이 됩니다.
- 예: 5 | 3 -> 0101 | 0011 = 0111 (결과는 7)
3. XOR ^
- 두 비트가 다를 때 결과가 1이 됩니다.
- 예: 5 ^ 3 -> 0101 ^ 0011 = 0110 (결과는 6)
4. NOT ~
- 비트 값을 반전시킵니다. 1은 0으로, 0은 1로 변경됩니다.
- 파이썬에서는 2의 보수를 취하게 됩니다. 따라서, ~n은 -(n+1)과 같습니다.
- 예 ~5 -> ~0101 = -(0101+1) = -0110 (결과는 -6)
5. 왼쪽시프트 <<
- 지정한 횟수만큼 비트를 왼쪽으로 이동시킵니다.
- 오른쪽은 0으로 채워집니다.
- 예: 5 << 1 -> 0101 << 1 = 1010 (결과는 10)
6. 오른쪽시프트 >>
- 지정한 횟수만큼 비트를 오른쪽으로 이동시킵니다.
- 예: 5 << 1 -> 0101 << 1 = 0010 (결과는 2)
# 비트연산자를 이용하여 리스트 변수 arr의 길이가 2의 거듭제곱인지 판별하는 예시
if len(arr) & len(arr) - 1 == 0: (1000 & 0111 -> 0)
print("리스트 arr의 길이는 2의 거듭제곱입니다.")