코딩하는 해맑은 거북이
[Python] 비트 연산자 종류 본문
해당 글은 비트 연산자 5가지를 다룬다.
1. AND(&)
2. OR(|)
3. XOR(^)
4. NOT(~)
5. SHIFT(<<, >>)
0. 2진수 변환 → bin(정수)
파이썬에서 10진수를 2진수로 변환할 때는 bin 함수를 사용한다.
print(0b1100)
print(bin(12))
12
0b1100
1. AND(&)
비트 단위로 AND 연산을 수행하는 연산자는 & 이다.
AND 연산은 두 비트가 모두 1일 때 결과는 1, 그 외에는 0이 된다.
A | B | A & B |
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
print(0b1100 & 0b1010, bin(0b1100 & 0b1010))
8 0b1000
2. OR(|)
비트 단위로 OR 연산을 수행하는 연산자는 | 이다.
OR 연산은 두 비트 중 하나만 1이어도 결과는 1, 둘다 0일 때만 0이 된다.
A | B | A | B |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
print(0b1100 | 0b1010, bin(0b1100 | 0b1010))
14 0b1110
3. XOR(^)
비트 단위로 XOR 연산을 수행하는 연산자는 ^ 이다.
XOR 연산은 두 비트가 서로 다를 때 결과는 1, 같을 때는 0이 된다.
A | B | A ^ B |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
print(0b1100 ^ 0b1010, bin(0b1100 ^ 0b1010))
6 0b110
4. NOT(~)
비트 단위로 NOT 연산을 수행하는 연산자는 ~ 이다.
NOT 연산은 0은 1로, 1은 0으로 각 비트를 반전시킨다.
A | ~A |
0 | 1 |
1 | 0 |
print(~0b1100, bin(~0b1100))
-13 -0b1101
5. SHIFT(<<, >>)
비트 단위로 SHIFT 연산을 수행하는 연산자는 <<와 >>가 있다.
<<는 LEFT SHIFT로 왼쪽으로 비트를 이동시키는 연산이다.
>>는 RIGHT SHIFT로 오른쪽으로 비트를 이동시키는 연산이다.
print(0b1100 << 2, bin(0b1100 << 2))
print(0b1100 >> 2, bin(0b1100 >> 2))
48 0b110000
3 0b11
'Python > 기본' 카테고리의 다른 글
[Python] all 함수, any 함수 (0) | 2023.12.09 |
---|---|
[Python] 내장함수 시간복잡도 (0) | 2023.08.19 |
[Python] 시간복잡도, 공간복잡도 제한 (0) | 2023.08.18 |
[Python] math 라이브러리 주요 함수 (0) | 2023.06.15 |
[Python] for if-else 한줄로 작성하는 방법 (0) | 2023.06.14 |
Comments