알고리즘을 풀다가 모르는 연산자가 나와서 포스팅 한다.
<<, >>, |=, &= 는 비트 연산자이다.
& (Binary AND) : bit 단위로 and연산을 한다.
| (Binary OR) : bit 단위로 or연산을 한다.
^ (Binary XOR) : bit 단위로 xor연산을 한다.
~ (Binary NOT) : bit 단위로 not연산을 한다.(1의 보수)
<< (Binary left Shift) : bit 단위로 왼쪽으로 비트단위 밀기 연산을 한다.
>> (Binary right Shift) : bit 단위로 오른쪽으로 비트단위 밀기 연산을 한다.
예를 들어 a = 0011, b = 1100일 때,
a & b 는 둘다 1 일이여야만 1이기 때문에,
0011
1100
_____
0000
해서 0000이 된다.
# 비트 연산자(Bitwise Operators)
a = 0b10000001
b = 0b11110110
print('a = ', a, ":", bin(a))
print('b = ', b, ":", bin(b))
print('a & b = ', a & b, ":", bin(a & b))
print('a | b = ', a | b, ":", bin(a | b))
print('a ^ b = ', a ^ b, ":", bin(a ^ b))
print('~a = ', ~a, ":", bin(~a))
a = 0b1
print('a = ', a)
a = a << 1 # * 2
print('a = ', a)
a = a << 1 # * 2
print('a = ', a)
a = a << 3 # * 2**3
print('a = ', a)
a = a >> 1 # / 2
print('a = ', a)
a = a >> 1 # / 2
print('a = ', a)
a = a >> 2 # / 2**2
print('a = ', a)
# 답
a = 129 : 0b10000001
b = 246 : 0b11110110
a & b = 128 : 0b10000000
a | b = 247 : 0b11110111
a ^ b = 119 : 0b1110111
~a = -130 : -0b10000010
a = 1
a = 2
a = 4
a = 32
a = 16
a = 8
a = 2
'Language > Python' 카테고리의 다른 글
Python 프로젝트 Git Ignore 쉽게 설정하기 (0) | 2020.01.24 |
---|---|
Python VENV 설정 시 module/python.exe 관련 invalid SDK 오류 해결 (0) | 2020.01.24 |
Python Pycharm 환경설정 / venv 설정 (0) | 2020.01.08 |
댓글