비트 설정, 삭제와 토글
마스크로 하나의 비트를 수정합니다
비트 설정, 삭제와 토글은(는) CoddyKit의 무료 Coding Interview Prep 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Coding Interview Prep 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Coding Interview Prep 강의에는 총 4개의 강의가 포함되어 있습니다.
한 번에 한 비트 수정하기
때로는 다른 비트에는 영향을 주지 않고 하나의 비트만 바꿔야 합니다. 비결은 원하는 비트만 정확히 대상으로 삼는 마스크를 만드는 것입니다. 🎯
단일 비트 마스크 만들기
1을 원하는 위치까지 시프트하면 비트 하나만 켜진 마스크를 얻을 수 있습니다. 위치 0은 가장 오른쪽 비트입니다.
mask = 1 << 3 # 0b1000, targets bit 3OR로 비트 설정하기
비트를 켜려면 수와 마스크를 OR 연산하세요. OR는 해당 위치를 1로 만들고 다른 모든 비트는 그대로 둡니다. 이를 비트를 설정한다고 합니다.
n = 0b0001
n |= (1 << 2) # 0b0101설정은 멱등적입니다
비트가 이미 1이면 다시 설정해도 아무것도 바뀌지 않습니다. 마스크와 OR 연산을 반복해도 안전하므로, 반복문 안에서도 안정적으로 사용할 수 있습니다. 👍
반전된 마스크
비트를 지우려면 해당 위치가 OFF이고 나머지 모든 위치가 ON인 마스크가 필요합니다. NOT 연산자(~)는 간단한 마스크의 모든 비트를 뒤집습니다.
clear = ~(1 << 2) # ...11111011AND로 비트 지우기
수를 반전된 마스크와 AND 연산하면 나머지는 유지하면서 해당 비트를 0으로 만들 수 있습니다. 이것이 단일 비트를 지우는 방법입니다.
n = 0b0111
n &= ~(1 << 1) # 0b0101XOR로 비트 반전하기
단일 비트 마스크와 XOR 연산하면 해당 위치가 뒤집힙니다. 0은 1이 되고 1은 0이 됩니다. 이 반전은 세 가지 방법 중 가장 깔끔한 한 줄 표현입니다.
n = 0b0101
n ^= (1 << 0) # 0b0100비트가 켜져 있는지 확인하기
수를 단일 비트 마스크와 AND 연산합니다. 결과가 0이 아니면 해당 비트가 설정된 것이고, 0이면 비트가 꺼진 것입니다.
n = 0b0100
on = (n & (1 << 2)) != 0 # True비트를 0 또는 1로 읽기
수를 오른쪽으로 시프트하여 대상 비트를 가장 오른쪽으로 옮긴 다음 1과 AND 연산합니다. 그러면 정확히 비트 값인 0 또는 1을 얻습니다.
n = 0b1010
bit = (n >> 1) & 1 # 1비트 수정이 중요한 이유
비트를 설정하고 지우고 반전하면 하나의 정수 안에 여러 개의 켜짐 또는 꺼짐 표시를 저장할 수 있습니다. 이것이 대회 프로그래밍에서 간결한 비트마스크 상태를 만드는 핵심입니다.
하나 차이를 주의하세요
비트 위치는 0부터 시작하므로, 비트 k는 1을 왼쪽으로 k만큼 시프트한 값에 해당합니다. 인덱스를 혼동하는 것이 여기서 초보자가 가장 흔히 저지르는 오류입니다.
빠른 확인
비트를 지울 때 올바른 연산을 선택하세요.
복습: 설정, 지우기, 반전
OR는 비트를 설정하고, NOT과 AND를 함께 사용하면 비트를 지우며, XOR는 단일 비트를 반전합니다. 이 세 가지 마스크를 익히면 원하는 모든 비트를 제어할 수 있습니다. 🎉
자주 묻는 질문
“비트 설정, 삭제와 토글” 강의는 무료인가요?
네 — “비트 설정, 삭제와 토글” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Coding Interview Prep 강의 전체를 잠금 해제할 수 있습니다. Coding Interview Prep 강의에는 총 4개의 강의가 포함되어 있습니다.
“비트 설정, 삭제와 토글”에서 뭘 배우나요?
마스크로 하나의 비트를 수정합니다 브라우저에서 직접 실행하는 실습 코드로 Coding Interview Prep을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Coding Interview Prep을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Coding Interview Prep은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“비트 설정, 삭제와 토글” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Coding Interview Prep 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Coding Interview Prep 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- AND, OR, XOR와 시프트
- 비트 설정, 삭제와 토글
- 비트 개수와 최하위 설정 비트
- 작은 집합으로 사용하는 비트마스크