개발 모음집/Python
파이썬 비트 논리연산자
wonos
2022. 4. 21. 10:25
비트 연산자 사용하기
컴퓨터는 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