Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# BitArray – 특정 위치의 비트 값을 가져오고 설정하는 방법

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의 모든 요소를 순차적으로 확인할 수 있습니다.