C#의 BitArray 클래스는 불리언(bool) 값으로 표현되는 비트들을 관리하는 컬렉션입니다. 특정 위치에 있는 비트 값을 가져올 때는 Get() 메서드를 사용하고, 새로운 값을 설정할 때는 인덱서([]) 또는 Set() 메서드를 활용합니다.
아래 예제를 통해 실제 동작 방식을 살펴보겠습니다.
예제 1 – Get() 메서드로 비트 값 읽기
using System;
using System.Collections;
public class Demo {
public static void Main(){
BitArray arr1 = new BitArray(2);
BitArray arr2 = new BitArray(2);
arr1[0] = false;
arr1[1] = true;
Console.WriteLine("BitArray1 length = "+arr1.Length);
Console.WriteLine("BitArray1 first element = "+arr1.Get(0));
arr2[0] = false;
arr2[1] = true;
Console.WriteLine("\nBitArray2 length = "+arr2.Length);
Console.WriteLine("Elements in BitArray2...");
foreach (bool res in arr2){
Console.WriteLine(res);
}
Console.WriteLine("\nIs BitArray1 equal to BitArray2? = "+arr2.Equals(arr1));
}
}
위 코드에서 new BitArray(2)는 크기가 2인 비트 배열을 생성하며, Get(0)은 인덱스 0 위치의 비트 값을 반환합니다.
출력 결과
BitArray1 length = 2
BitArray1 first element = False
BitArray2 length = 2
Elements in BitArray2...
False
True
Is BitArray1 equal to BitArray2? = False
예제 2 – 인덱서로 비트 값 변경하기
이번에는 이미 설정된 위치의 값을 다른 값으로 업데이트하는 예제입니다. 인덱서(arr1[0] = true)를 사용하면 해당 위치의 비트 값을 손쉽게 변경할 수 있습니다.
using System;
using System.Collections;
public class Demo {
public static void Main(){
BitArray arr1 = new BitArray(2);
BitArray arr2 = new BitArray(2);
arr1[0] = false;
arr1[1] = true;
Console.WriteLine("BitArray1 length = "+arr1.Length);
Console.WriteLine("BitArray1 first element = "+arr1.Get(0));
arr1[0] = true;
Console.WriteLine("BitArray1 first element [UPDATED] = "+arr1.Get(0));
arr2[0] = false;
arr2[1] = true;
Console.WriteLine("\nBitArray2 length = "+arr2.Length);
Console.WriteLine("Elements in BitArray2...");
foreach (bool res in arr2){
Console.WriteLine(res);
}
Console.WriteLine("\nIs BitArray1 equal to BitArray2? = "+arr2.Equals(arr1));
}
}
출력 결과
BitArray1 length = 2
BitArray1 first element = False
BitArray1 first element [UPDATED] = True
BitArray2 length = 2
Elements in BitArray2...
False
True
Is BitArray1 equal to BitArray2? = False
정리
- 값 읽기:
Get(index)메서드를 사용하면 지정한 위치의 비트 값을 bool 형태로 반환받을 수 있습니다. - 값 설정: 인덱서(
arr[index] = value) 또는Set(index, value)메서드를 사용해 원하는 위치의 비트 값을 변경할 수 있습니다. - 전체 순회:
foreach문을 이용하면 BitArray의 모든 요소를 순차적으로 확인할 수 있습니다.