728x90
728x170
*비트 연산자(Bitwise Operator)
연산자 |
예 |
설명 |
& | 10 & 5 |
AND 연산 : 모두 참(1)일 경우만 참(1) |
| |
10 | 5 |
OR 연산 : 둘 중 하나만 참(1)일 경우 참(1) |
^ |
10 ^ 5 |
XOR 연산 : 모두 다를 경우만 참(1) |
<< |
10 << 2 |
왼쪽 비트 이동 연산 |
>> |
10 >> 2 |
오른쪽 비트 이동 연산 |
# 비트 연산자
'''
& : AND 비트 연산
| : OR 비트 연산
^ : XOR 비트 연산
<< : 왼쪽 피연산자의 비트를 왼쪽으로 이동
>> : 왼쪽 피연산자의 비트를 오른쪽으로 이동
'''
print(10&5) # 0
print(10|5) # 15
print(10^5) # 15
print(10<<2) # 40
print(10>>2) # 2
''' 풀이
bin(10) : 0b1010
bin(5) : 0b101
(1) &(AND)
10: 1010
5 : 0101
---------
0000(2) -> 0(10)
(2) |(OR)
10: 1010
5 : 0101
---------
1111(2) -> 15(10)
(3) ^(XOR)
10: 1010
5 : 0101
---------
1111(2) -> 15(10)
(4) <<(LSHIFT)
10<<2
10 : 1010+`00`(add) -> 101000(2) -> 40 <=> 10 * 2^2 = 40
(5) >> (RSHIFT)
10>>2
10 : 10'10'(remove) -> 10(2) -> 2 <=> 10 / 2^2 = 2
'''
'''
따라서,
X>>N = X * 2^N
X<<N = X / 2^N
'''
print(16>>2) # = 16 / 2^2 = 4
print(16<<2) # = 16 * 2^2 = 64
비트 계산은 2진수의 숫자로 한다.
그러므로 10진수의 숫자로 비트 연산자를 사용하여 연산을 하게 되면, 파이썬 IDE는 자동으로 10진수의 수를 2진수의 수로 변환하여 비트 연산을 수행한다.
공식처럼 외워두자.
비트 이동 공식 |
728x90
그리드형(광고전용)
'Programming > Python' 카테고리의 다른 글
아나콘다(Anaconda) 환경 변수 설정 방법 (Windows) (0) | 2022.03.19 |
---|---|
IPython (0) | 2022.03.12 |
주피터 노트북(Jupyter Notebook) (0) | 2022.03.12 |
[Python] 에러 메시지 (0) | 2021.07.20 |
[Colab] 구글 드라이브 연동하기 & 디렉터리 접근하기 (0) | 2020.11.11 |
[Colab] GPU/TPU 사용하기 (0) | 2020.11.04 |
람다 함수(Lambda Function) (0) | 2020.03.24 |
리스트 내포(List Comprehension) (0) | 2020.03.24 |