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의 거듭제곱입니다.")