|
C# 인트로 |
[1] |
|
등록일:2008-03-27 19:59:25 (0%) 작성자:갤러리정 제목:[후다닥편집]컬렉션13 : BitArray 클래스 |
|
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; using System.Collections;
public class BitArrayTest { public static void Main() { BitArray b=new BitArray(8, false); Print("1. BitArray를 생성했을 때의 값", b); b[2]=true; b.Set(7, true);Print("2. BitArray의 값 변경후의 값:", b); BitArray temp=new BitArray(8, false); b.Xor(temp);Print("3. BitArray에서 Xor() 메서드를 수행한 후의 값:", b);
} //main
public static void Print(string info, IEnumerable myCollection ) { Console.Write(info+"\n"); System.Collections.IEnumerator myEnumerator = myCollection.GetEnumerator(); int index=0; while ( myEnumerator.MoveNext() ){ Console.Write( "b[{0}]:{1}\t", index ++, myEnumerator.Current ); } Console.WriteLine(); } } //class |
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);
Xor() 메서드는 두 입력 비트가 서로 다를 때에만 주어진 비트가 true로 설정됩니다. |
[본문링크] [후다닥편집]컬렉션13 : BitArray 클래스
|
[1]
|
|
|
|
|
코멘트(이글의 트랙백 주소:/cafe/tb_receive.php?no=3046 |
|
|
|
|
|
|
|
|
|
Copyright byCopyright ⓒ2005, SSISO Community All Rights Reserved.
|
|
|