C# BitArray 클래스란?
C#의 BitArray 클래스는 비트(bit) 값들을 효율적으로 관리하기 위한 컴팩트한 배열 구조를 제공합니다. 각 비트는 불리언(Boolean) 값으로 표현되며, true는 해당 비트가 켜져 있음(1)을, false는 꺼져 있음(0)을 의미합니다.
BitArray는 메모리 사용량이 적어 대량의 이진 데이터를 다룰 때 특히 유용하며, 비트 단위 논리 연산(AND, OR, XOR, NOT)을 손쉽게 수행할 수 있는 다양한 메서드를 제공합니다.
BitArray의 주요 메서드
인덱스 기반으로 동작하는 BitArray 컬렉션에서 자주 사용되는 핵심 메서드는 다음과 같습니다.
| 번호 | 메서드 및 설명 |
|---|---|
| 1 | public BitArray And(BitArray value); 현재 BitArray의 요소와 지정된 BitArray의 대응 요소들에 대해 비트 단위 AND 연산을 수행합니다. |
| 2 | public bool Get(int index); BitArray 내 특정 위치(index)에 있는 비트 값을 가져옵니다. |
| 3 | public BitArray Not(); 현재 BitArray의 모든 비트 값을 반전시킵니다. 즉, true로 설정된 요소는 false로, false로 설정된 요소는 true로 변경됩니다. |
| 4 | public BitArray Or(BitArray value); 현재 BitArray의 요소와 지정된 BitArray의 대응 요소들에 대해 비트 단위 OR 연산을 수행합니다. |
| 5 | public void Set(int index, bool value); BitArray 내 특정 위치의 비트를 지정된 값으로 설정합니다. |
| 6 | public void SetAll(bool value); BitArray의 모든 비트를 지정된 값으로 한 번에 설정합니다. |
| 7 | public BitArray Xor(BitArray value); 현재 BitArray의 요소와 지정된 BitArray의 대응 요소들에 대해 배타적 논리합(XOR) 연산을 수행합니다. |
BitArray 사용 예제
다음은 BitArray 객체를 생성하고 요소 개수를 확인하는 간단한 예제입니다.
using System;
using System.Collections;
public class Demo {
public static void Main() {
BitArray arr = new BitArray(10);
Console.WriteLine("Count: {0}", arr.Count);
}
}이 코드는 크기가 10인 BitArray를 생성한 후, Count 속성을 통해 배열에 포함된 비트의 총 개수를 콘솔에 출력합니다. 실행 결과로 Count: 10이 출력됩니다.
마무리
BitArray는 플래그 관리, 필터링, 압축 알고리즘 등 비트 수준의 조작이 필요한 상황에서 매우 유용한 컬렉션입니다. 위에서 소개한 메서드들을 활용하면 복잡한 비트 연산도 간결하고 직관적인 코드로 구현할 수 있습니다.