7.13 BitArray 클래스
BitArray 클래스는 비트 값의 컬렉션을 처리할 수 있는 기능을 가지고 있습니다. 각 비트는 bool 값으로 표현할 수 있으며 비트를 설정할 때는 true를, 비트를 설정하지 않을 때는 false를 사용합니다. BitArray 클래스도 컬렉션의 한 종류이기 때문에 IEnumerable을 사용하여 비트 배열의 값을 출력할 수 있습니다. 다음은 BitArray 클래스의 프로토타입입니다.
▣ BitArray 클래스의 프로토타입 |
□ public sealed class BitArray : ICollection, IEnumerable, ICloneable |
□ BitArray b = new BitArray(8); □ 8비트를 가지는 비트배열 생성 □ 모든 비트는 false로 설정 |
▣ BitArray에 대해 논리 비트 연산을 수행하는 메서드 |
□ And() · 다른 BitArray 내의 해당 요소와 현재 BitArray 내의 요소에 대해 비트 방식의 AND 연산을 수행 □ Not() · 1(true)을 0(false)으로 그리고, 그 반대로 배열 내의 모든 비트를 반전 □ Or() · 다른 BitArray 내의 해당 요소와 현재 BitArray 내의 요소에 대해 비트 방식의 OR 연산을 수행 □ Xor() · 다른 BitArray 내의 해당 요소와 현재 BitArray 내의 요소에 대해 비트 방식의 배타적 논리(XOR) 연산을 수행 |
다음은 두개의 BitArray를 생성한 후 인덱스가 2와 6인 곳의 비트를 true로 설정합니다. 그리고, 첫째 배열과 둘째 배열을 XOR하는 예제입니다.
& |
BitArrayTest.cs |
Ü BitArray를 테스트하는 예제 |
using System; } //main | ||
C:\C#Example\07>csc BitArrayTest.cs C:\C#Example\07>BitArrayTest 1. BitArray를 생성했을 때의 값 b[0]:False b[1]:False b[2]:False b[3]:False b[4]:False b[5]:False b[6]:False b[7]:False 2. BitArray의 값 변경후의 값: b[0]:False b[1]:False b[2]:True b[3]:False b[4]:False b[5]:False b[6]:False b[7]:True 3. BitArray에서 Xor() 메서드를 수행한 후의 값: b[0]:False b[1]:False b[2]:True b[3]:False b[4]:False b[5]:False b[6]:False b[7]:True |
BitArray 객체를 생성합니다. 이 때 요소(Element)는 8개이며 모든 요소들은 false로 셋팅되어 있습니다.
BitArray b=new BitArray(8, false);
BitArray 요소에서 인덱스 2번째와 7번째 값을 true로 셋팅합니다. 값을 셋팅할 때는 배열처럼 셋팅하거나 Set() 메서드를 이용하여 셋팅할 수 있습니다.
b[2]=true;
b.Set(7, true);
그리고, 모든 요소에서 XOR 처리를 해줍니다. 이 때 사용하는 메서드는 Xor() 메서드입니다. XOR의 대상이 되는 BitArray temp를 생성한 후 원본 BitArray b를 이용하여 Xor()를 호출하고 있습니다.
BitArray temp=new BitArray(8, false);
b.Xor(temp);
[출처] [펌] [후다닥편집]컬렉션13 : BitArray 클래스|작성자 눈꽃천사