비트 마스킹이란 무엇입니까? 1에서 N까지 번호가 매겨진 요소 컬렉션이 있다고 가정합니다. 이 집합의 하위 집합을 나타내려면 N 비트 시퀀스로 인코딩할 수 있습니다(일반적으로 이 시퀀스를 “마스크”라고 합니다). 선택한 하위 집합에서 i-th 요소는 마스크의 i-th 비트가 즉, 1로 설정된 경우에만 해당합니다. 예를 들어, 마스크 10000101은 세트의 하위 집합을 의미한다 [1… 8] 요소 1, 3 및 8로 구성됩니다. N 요소 집합의 경우 총 2N 하위 집합이 있으므로 각 하위 집합을 나타내는 2N 마스크가 가능합니다. 실제로 각 마스크는 이진 표기명으로 작성된 정수 번호입니다. 실용적인 예제에서는 값 170, 이진 10101010을 살펴보겠습니다. 핀 7에서 이 값을 펄스하려면 다음과 같이 코드가 보일 수 있습니다: 여기서는 FOR 루프를 사용하여 비트 마스크 값을 반복하여 루프를 통해 매번 한 위치가 남은 값을 이동합니다. 이 예제에서는 <<= 연산자와 정확히 같은 연산자를 사용하며, 문 마스크를 압축하면 IP ACL(액세스 제어 목록)의 IP 주소와 함께 사용되며 허용 및 거부해야 할 작업을 지정합니다.

인터페이스에서 IP 주소를 구성하려면 마스크가 255로 시작하여 왼쪽에 큰 값이 있습니다: 예를 들어 IP 주소 209.165.202.129와 255.255.255.224 마스크가 있습니다. IP ACL용 마스크는 반대입니다. 이를 역 마스크 또는 와일드카드 마스크라고도 합니다. 마스크 값이 이진(0과 1)으로 세분화되면 트래픽 처리시 고려할 주소 비트를 결정합니다. 0은 주소 비트를 고려해야 함을 나타냅니다(정확히 일치). 마스크에 1은 “상관 없어”입니다. 이 표는 개념을 더 설명합니다. 비트와 이 마스크를 적용하기 위한 C 언어 예는 앰퍼샌드 기호입니다: 범위의 모든 숫자는 이러한 몇 가지 `기본` 숫자를 사용하여 지정할 수 있으므로 이러한 집합을 사용하여 실제 환경에서 사물을 모델링할 수 있습니다. 예를 들어 응용 프로그램에 대한 사용자 권한을 모델링한다고 가정해 보겠습니다. 예를 들어 읽기, 쓰기 및 삭제의 기본 조각; 여러 역할을 정의할 수 있습니다.

일부 언어는 비트 마스크 작업에 대한 추가 지원을 제공합니다. 예를 들어 C#은 열거형이 비트 마스킹 작업에 사용된다는 것을 의미하는 열거형 FlagsAtribute를 제공합니다. 비트 마스크는 바이트의 데이터로 특정 비트에 액세스하는 데 사용됩니다. 이 기능은 예를 들어 단일 핀밖으로 바이트의 데이터를 직렬로 보낼 때 반복 하는 방법으로 유용 합니다. 이 예제에서는 핀이 전송될 바이트의 각 비트에 대해 상태를 높음에서 낮음으로 변경해야 합니다. 이것은 비트 별 작업 및 비트 마스크로 알려진 것을 사용하여 수행됩니다. 내부적으로 이와 같은 비트필드를 사용하는 함수는 바이너리를 사용하고 개별 비트를 추출할 수 있습니다. 예를 들어 glClear()의 구현은 다음과 같습니다: 이 테이블에 대한 좋은 점은 네 개의 비트를 통해 조합을 통해 범위 0 – 15의 모든 숫자를 나타낼 수 있다는 것입니다. 예를 들어, 이진(101)인 5는 두 가지 방법으로 도출될 수 있다.

간략한 비트 마스크는 여러 값의 위치를 조작하는 데 도움이 됩니다.