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

C# BitArray에서 특정 위치의 비트를 지정한 값으로 설정하는 방법

C#의 BitArray.Set() 메서드를 사용하면 비트 배열(BitArray) 내 특정 위치에 있는 비트를 원하는 값으로 간단하게 설정할 수 있습니다. 이 메서드는 두 개의 매개변수를 받는데, 첫 번째는 값을 변경할 인덱스(0부터 시작)이고, 두 번째는 해당 위치에 설정할 불리언(Boolean) 값입니다.

Set() 메서드 문법

public void Set(int index, bool value);
  • index: 값을 설정할 비트의 위치
  • value: 해당 위치에 지정할 값(true 또는 false)

인덱스가 배열 범위를 벗어나면 ArgumentOutOfRangeException이 발생하므로 주의해야 합니다.

예제 1

다음은 Set() 메서드로 인덱스 2의 비트를 false로 변경하는 예제입니다.

using System;
using System.Collections;

public class Demo {
   public static void Main() {
      BitArray arr = new BitArray(5);
      arr[0] = true;
      arr[1] = false;
      arr[2] = true;
      arr[3] = false;
      
      Console.WriteLine("BitArray...");
      foreach(Object ob in arr) {
         Console.WriteLine(ob);
      }
      
      arr.Set(2, false);
      
      Console.WriteLine("\n업데이트된 BitArray...");
      foreach(Object ob in arr) {
         Console.WriteLine(ob);
      }
   }
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

BitArray...
True
False
True
False
False

업데이트된 BitArray...
True
False
False
False
False

실행 결과를 보면 arr.Set(2, false) 호출로 인해 인덱스 2의 값이 True에서 False로 변경된 것을 확인할 수 있습니다.

예제 2

이번에는 여러 개의 비트를 한 번에 설정하는 예제를 살펴보겠습니다.

using System;
using System.Collections;

public class Demo {
   public static void Main() {
      BitArray arr = new BitArray(5);
      arr[0] = true;
      arr[1] = false;
      arr[2] = true;
      arr[3] = false;
      
      Console.WriteLine("BitArray...");
      foreach(Object ob in arr) {
         Console.WriteLine(ob);
      }
      
      arr.Set(0, false);
      arr.Set(1, true);
      arr.Set(2, false);
      
      Console.WriteLine("\n업데이트된 BitArray...");
      foreach(Object ob in arr) {
         Console.WriteLine(ob);
      }
   }
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

BitArray...
True
False
True
False
False

업데이트된 BitArray...
False
True
False
False
False

이처럼 Set() 메서드를 활용하면 인덱서(arr[i])를 사용하는 것과 동일하게 특정 위치의 비트 값을 자유롭게 변경할 수 있습니다. 참고로 배열 전체를 하나의 값으로 일괄 설정하고 싶다면 SetAll() 메서드를 사용하는 것도 좋은 방법입니다.