파이썬 비트 연산자
비트 연산자는 정수(+,0,-)를 이진수(bit) 형식으로 표현한 후, 각 비트 단위로 논리 연산을 수행하는 연산자입니다. 이때 비트(bit)는 이진수에서 사용되는 최소 단위로, 0과 1로 구성되어 있습니다.
예를 들어 10진수 정수 10과 7은 이진수로 각각 1010과 0111로 표현됩니다.
비트 연산자를 사용하면 이 두 수의 각 비트에 대한 논리 연산을 수행할 수 있습니다.
num1,num2 = 5,3
print(bin(5),bin(3)) # 0b101 0b11
파이썬에서는 bin() 함수를 사용하면 10진수를 2진수로 변환해 줍니다.
비트 연산자의 종류
연산자 | 부호 |
비트 AND | & |
비트 OR | | |
비트 XOR | ^ |
비트 NOT | ~ |
비트 Left Shift | << |
비트 Right Shift | >> |
AND 연산자
a = 10 # 1010 (이진수)
b = 7 # 0111 (이진수)
result = a & b
print(result) # 2 (0010, 이진수)
AND 연산자 &는 두 비트 값이 모두 1일 때 결과가 1이 되는 연산입니다.
OR연산자
OR 연산자 |는 두 비트 값 중 하나라도 1이면 결과가 1이 되는 연산입니다.
a = 10 # 1010 (이진수)
b = 7 # 0111 (이진수)
result = a | b
print(result) # 15 (1111, 이진수)
XOR연산
a = 10 # 1010 (이진수)
b = 7 # 0111 (이진수)
result = a ^ b
print(result) # 13 (1101, 이진수)
XOR 연산자는 두 비트 값이 서로 다르면 결과가 1이 되는 연산입니다.
NOT연산자
a = 10 # 00001010 (이진수)
result = ~a # -00001011 (이진수)
print(result) # -11
NOT 연산자는 각 비트 값을 반전시키는 연산입니다
Left Shift 연산자
a = 10 # 001010 (이진수)
result = a << 2 # 2칸 이동
print(result) # 40 (101000, 이진수)
Left Shift 연산자는 비트 값을 왼쪽으로 이동시키는 연산입니다.
이때 오른쪽에 들어오는 비트는 0이 채워집니다.
Right Shift 연산자
a = 10 # 001010 (이진수)
result = a >> 2 # 2칸 이동
print(result) # 2 (0010, 이진수)
Right Shift 연산자는 비트 값을 오른쪽으로 이동시키는 연산입니다.
이때 왼쪽에 들어오는 비트는 0이 채워집니다