00 개요
- 회사에서 코드분석 중 비트 연산(bitwise operation)을 사용하여 값의 유효성을 검사함
- 특정 비트 패턴을 검사하는 방식은 컴퓨터 과학 및 시스템 프로그래밍에서 자주 사용됨
- 예) 플래그 값의 유효성 확인, 권한 체크, 또는 상태 플래그의 유효성 검사 등
- 이에 대한 정리!
01 비트마스크 (bitmask)란
1. 정의
- 이진수(bit)로 구성된 값을 사용하여 특정 비트들을 선택 또는 수정하는 기법
- 주로 비트 단위의 논리 연산(AND, OR, XOR, NOT)을 통해 특정 플래그나 설정을 제어하는 데 사용됨
2. 주요 개념
1) 비트 연산
연산 종류 | 설명 |
AND 연산 (&) | 두 비트가 모두 1일 때만 1을 반환 특정 비트를 선택 또는 확인 시 사용 |
OR 연산 (|) | 두 비트 중 하나라도 1이면 1을 반환 특정 비트를 설정할 때 사용 |
XOR 연산 (^) | 두 비트가 서로 다를 때 1을 반환 특정 비트를 토글(반전)할 때 사용 |
NOT 연산 (~) | 모든 비트를 반전시킴 |
2) 비트마스크 사용 예시
- 플래그 설정: 여러 설정을 하나의 정수 값에 저장할 때 비트마스크 사용. 각 비트는 특정 설정을 나타내며, 이를 통해 다양한 설정을 한 번에 저장 가능
- 비트 추출: 특정 비트를 선택하여 그 값이 설정되어 있는지 확인 가능
3. 용도
- 상태 관리: 다수의 플래그를 하나의 정수로 관리할 때 사용 가능
- 하드웨어 제어: 특정 비트를 이용하여 하드웨어의 특정 기능을 제어할 때 사용 가능
- 데이터 압축: 작은 크기의 데이터를 비트 단위로 관리하여 공간을 절약할 때 사용 가능
4. 예시
1) 플래그 설정 예시
- 8비트의 플래그를 설정하고 관리한다고 가정:
- 0000 0001 (1): 첫 번째 플래그 설정
- 0000 0010 (2): 두 번째 플래그 설정
- 0000 0100 (4): 세 번째 플래그 설정
- 만약 첫 번째와 세 번째 플래그를 설정하고 싶다면, 두 값을 OR 연산으로 결합 가능
- 0000 0001 | 0000 0100 = 0000 0101 (5)
2) 비트 추출 예시
- 값 0101 0010이 있을 때 세 번째 비트가 설정되었는지 확인하려면, AND 연산 사용하여 확인 가능
- 0101 0010 & 0000 0100 = 0000 0000
- 결과가 0이므로 세 번째 비트는 설정되지 않았음을 확인
3) 비트마스크로 특정 비트 설정 예시
- 네 번째 비트를 켜려면 (1로 설정) OR 연산 사용하여 설정 가능
- 0100 0010 | 0000 1000 = 0100 1010
'OS 운영체제' 카테고리의 다른 글
PID (프로세스 식별자) (2) | 2024.09.20 |
---|---|
고급 이론 용어 정리-동시성, 병렬성, 원자성, 의존성 (0) | 2024.09.07 |
failover (자동 전환) (0) | 2024.08.27 |
오버헤드 (Overhead) (0) | 2024.08.26 |
shared memory (공유 메모리) (0) | 2024.08.15 |