<jupyter_start><jupyter_text>비트마스크- 비트연산으로 모든 부분집합 표현- not 연산: 자료형에 따라 결과 다름    - A = 1010011    - ~A = 10101100 (01010011의 반대)- shift left(>)    - A<<B (A를 왼쪽으로 B만큼 밀다)    - 1 << 0 = 1    - 1 << 1 = 2 (10_2)    - 즉, A << B = A x 2^B    - 반대로, A >> B = (A+B)/2 >> 1- 활용: i를 추가/검사/제거/토글    - 정수로 집합을 나타낼 수 있음    - 정수 하나 vs 정수 열 개    - 배열 vs 정수~~~int([10])~~~    - 0 ~ (N-1)까지 정수로 이루어진 집합 나타낼 때 사용    - 1 ~ N 까지 정수는 공간이 2배 더 필요 -> 위와 같이 변환 필요---- 예제1~~~[1, 3, 4, 5, 9] = 570 and 연산: 포함여부0이 포함되어 있는지 검사    570 & 2^0 = 570 & (1<<0) = 01이 포함되어 있는지 검사    570 & 2^1 = 570 & (1<<1) = 2~~~- 예제2~~~ or 연산: 추가 (0을 1로 만든다) 2 추가(집합에 없는 수)    570 | 1*2^2 (1<<2)     -> 1000111010 | 0000001000 = 1000111010 = 574~~~- 예제 3~~~ ~& 1<<i(1을 0으로 만든다)~~~- 예제 4~~~ 토글하기(1과 0 switch)~~~---<jupyter_code>a = 0b10101010
a<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.20484848484848484, 'fraction_numerical': 0.16363636363636364, 'mean_word_length': 2.201550387596899, 'pattern_counts': {'":': 0, '<': 21, '<?xml version=': 0, '>': 12, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '619796', 'license': 'MIT', 'n_tokens_mistral': 638, 'n_tokens_neox': 663, 'n_words': 134, 'path': '01.Algorithm/bitmask.ipynb', 'repo_name': 'HenryPaik1/Study', 'size': '825'}