비트 연산 (Bitwise Operations)
비트 연산은 정수나 문자와 같은 데이터를 2진수 비트 단위(0과 1)로 직접 조작하는 연산입니다.
이는 CPU가 가장 빠르고 효율적으로 처리할 수 있는 연산 방식이며, 주로 메모리나 하드웨어를 정밀하게 제어할 때 사용됩니다.
1. 비트 연산의 목적과 중요성
- 하드웨어 제어 (임베디드): 마이크로컨트롤러(MCU)의 레지스터에서 특정 핀(Bit) 하나만 켜거나(SET), 끄거나(CLEAR), 상태를 확인할 때 사용됩니다.
- 효율성/속도: 곱셈이나 나눗셈보다 훨씬 빠릅니다. (예: 숫자를 2로 곱하거나 나눌 때 비트 이동 연산자를 사용)
- 데이터 압축 및 암호화: 비트 단위의 패턴 조작은 데이터 처리 및 보안 알고리즘의 기초가 됩니다.
2. 연산의 대상: 레지스터와 마스크
비트 연산은 주로 두 가지 핵심 요소를 대상으로 합니다.
- 레지스터(Register) 또는 데이터: 실제 조작하고자 하는 2진수 값입니다. (예: MCU의 포트 상태 레지스터)
- 마스크(Mask): 조작하고자 하는 특정 비트의 위치를 1로 지정하여 만든 기준 2진수 값입니다.
비유: 마스크는 원하는 부분만 연산을 통과시키고, 나머지는 가리는 도장 틀과 같습니다.
3. 비트 연산의 주요 종류
| 종류 | 기호 (C/Python) | 주요 용도 |
|---|---|---|
| 비트 논리 연산 | &, |, ^, ~ |
특정 비트 켜기/끄기, 상태 확인, 토글 |
| 비트 이동 연산 | <<, >> |
숫자의 빠른 곱셈/나눗셈, 비트 위치 이동 |
이 연산자들을 조합하여 데이터를 원하는 형태로 정교하게 변형하는 것이 비트 연산의 핵심입니다.