switch_states = [True, False, False, True, True, False, False, False, True, True]
switch_states = 0b1001100011 # 611, python에서는 앞에 '0b'를 붙여 이진수 표현 가능
대응하는 숫자가 모두 1일 경우 1을 반환합니다.
0b1010011010 & 0b1101101100 # 0b1000001000
대응하는 숫자중 하나라도 1일 경우 1을 반환합니다.
0b1010011010 | 0b1101101100 # 0b1111111110
대응하는 숫자가 서로 다를 경우 1을 반환합니다.
0b1010011010 ^ 0b1101101100 # 0b111110110
a << b는 a의 비트를 b칸 만큼 왼쪽으로 밀어 내는 것이고, a >> b는 a의 비트를 b칸 만큼 오른쪽으로 밀어내는 것 입니다.
0b0010 << 2 # 0b1000
0b1100 >> 2 # 0b11
비트 값을 반전시킵니다.
~0b0010 << 2 # 0b1101
n번째 수를 추가 하고자 할 때
n = 3
0b0010 | (1 << n) # 0b1010
n번째 수를 제거 하고자 할 때
n = 3
0b1010 & ~(1 << n) # 0b10
n번째 수가 있나 없나 확인 할 때 (0이면 없고, 1 이상이면 있는 것)
n = 3
0b1010 & (1 << n) # 0b1000
n번째 수를 켜져 있으면 끄고, 꺼져 있으면 켬
n = 3
0b1010 ^ (1 << n) # 0b10
https://velog.io/@1998yuki0331/Python-%EB%B9%84%ED%8A%B8-%EB%A7%88%EC%8A%A4%ED%82%B9-%EC%A0%95%EB%A6%AC
https://justkode.kr/algorithm/bitmash