본문 바로가기
Engineering WIKI/Python

파이썬 비트 논리연산자

by wonos 2022. 4. 21.

비트 연산자 사용하기

컴퓨터는 2진수(0과 1)를 사용하므로 대부분의 프로그래밍 언어는 2진수를 다루는 연산자를 제공합니다. 그런데 2진수로 변환하는 방법을 잘 모른다면 어떻게 해야 할까요? 걱정하지 않아도 됩니다. 파이썬에서는 간단하게 2진수와 10진수를 서로 변환할 수 있습니다.

10진수와 2진수 변환하기

10진수를 2진수로 된 문자열로 변환할 때는 bin을 사용합니다. 반대로 2진수에서 10진수로는 입력 즉시 변환됩니다.

  • bin(정수)
bin(13)    # 10진수 13을 2진수로 변환
# '0b1101'
0b1101     # 2진수 1101을 10진수로 변환
# 13

만약 2진수가 문자열 형태라면 int에 문자열과 2를 지정하여 10진수로 변환할 수 있습니다. 그리고 코드에서 2진수를 직접 입력할 때는 맨 앞에 0b를 붙입니다(binary의 b).

만약 2진수가 문자열 형태라면 int에 문자열과 2를 지정하여 10진수로 변환할 수 있습니다. 그리고 코드에서 2진수를 직접 입력할 때는 맨 앞에 0b를 붙입니다(binary의 b).

  • int('2진수문자열', 2)
int('1101', 2)    # 2진수로 된 문자열 1101을 10진수로 변환
# 13

비트 논리 연산자 사용하기

이제 2진수의 각 자릿수를 AND, OR, XOR, NOT 연산을 하는 비트 논리 연산자를 사용해보겠습니다.

  • a & b
  • a | b
  • a ^ b
  • ~x
>>> bin(0b1101 & 0b1001)    # 비트 AND
'0b1001'

>>> 13 & 9                  # 비트 AND
9

>>> bin(0b1101 | 0b1001)    # 비트 OR
'0b1101'

>>> 13 | 9                  # 비트 OR
13

>>> bin(0b1101 ^ 0b1001)    # 비트 XOR
'0b100'

>>> 13 ^ 9                  # 비트 XOR
4

>>> bin(~0b1101)            # 비트 NOT
'-0b1110

>>> ~13                     # 비트 NOT
-14