모두 익히 알다시피 컴퓨터는 2진수를 사용한다. 그리고 인간은 10진수를 사용한다. 인간이 쓰는 정수를 이진수와 이진수 연산법을 통해서 문제를 해결하는 기술을 비트 마스크라고 한다.
bin(13) # '0b1101'
bin 이라는 파이썬 내장함수를 이용한다. 이때 주의할 점으로 str type으로 반환한다는 점이 있다. 파이썬에서 이진수의 경우에는 숫자 앞에 0b가 붙는다.
int('0b1101',2) # 13
int에 두번째 인자로 오는 2는 앞에오는 인자를 2진수로 인식한다는 뜻이다. 2진수의 0b1101을 10진수로 변환한다는 뜻이다.
0b1101(13)과 0b1001(9)로 예를 들어보도록 하겠다. 네개의 논리 연산자에서는 각 자리수 별로 연산을 진행한다.
and 0b1101 & 0b1001 # 0b1001 각 자리수별로 두 숫자가 모두 1일 때에만 1을 반환한다. or 0b1101 | 0b1001 # 0b1101 각 자리수별로 1이 하나라도 있다면 1을 반환한다.(둘다 0일 경우에만 0) xor 0b1101 ^ 0b1001 # 0b100 각 자리의 숫자가 서로 다를 때 1을 반환한다. not ~0b1001 # 0b110 1이면 0을, 0이면 1을 반환한다.
<< 는 왼쪽으로 옮긴다는 연산자, >>는 오른쪽으로 옮긴다는 연산자이다.
유용한 정보 감사합니다~^^