[후다닥편집]컬렉션13 : BitArray 클래스 :: C# 인트로[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

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(8false
);
    Print(
"1. BitArray
 생성했을 때의 ", b);
    b[
2]=true
;
    b.Set(
7true);Print("2. BitArray
  변경후의 :", b);
    BitArray temp=
new BitArray(8false
);
    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
작성자
비밀번호

 

SSISOCommunity

[이전]

Copyright byCopyright ⓒ2005, SSISO Community All Rights Reserved.