C # - Classe BitArray

La classe BitArray gestisce un array compatto di valori di bit, rappresentati come booleani, dove true indica che il bit è attivo (1) e false indica che il bit è disattivato (0).

Viene utilizzato quando è necessario memorizzare i bit ma non si conosce in anticipo il numero di bit. È possibile accedere agli elementi dalla raccolta BitArray utilizzando un indice intero, che inizia da zero.

Metodi e proprietà della classe BitArray

La tabella seguente elenca alcuni dei file di uso comune properties del BitArray classe -

Sr.No. Proprietà e descrizione
1

Count

Ottiene il numero di elementi contenuti in BitArray.

2

IsReadOnly

Ottiene un valore che indica se BitArray è di sola lettura.

3

Item

Ottiene o imposta il valore del bit in una posizione specifica in BitArray.

4

Length

Ottiene o imposta il numero di elementi in BitArray.

La tabella seguente elenca alcuni dei file di uso comune methods del BitArray classe -

Sr.No. Metodo e descrizione
1

public BitArray And(BitArray value);

Esegue l'operazione AND bit per bit sugli elementi nel BitArray corrente rispetto agli elementi corrispondenti nel BitArray specificato.

2

public bool Get(int index);

Ottiene il valore del bit in una posizione specifica in BitArray.

3

public BitArray Not();

Inverte tutti i valori di bit nel BitArray corrente, in modo che gli elementi impostati su true vengano modificati in false e gli elementi impostati su false vengano modificati in true.

4

public BitArray Or(BitArray value);

Esegue l'operazione OR bit per bit sugli elementi nel BitArray corrente rispetto agli elementi corrispondenti nel BitArray specificato.

5

public void Set(int index, bool value);

Imposta il bit in una posizione specifica nel BitArray sul valore specificato.

6

public void SetAll(bool value);

Imposta tutti i bit in BitArray sul valore specificato.

7

public BitArray Xor(BitArray value);

Esegue l'operazione OR eXclusive bit per bit sugli elementi nel BitArray corrente rispetto agli elementi corrispondenti nel BitArray specificato.

Esempio

L'esempio seguente mostra l'uso della classe BitArray:

using System;
using System.Collections;

namespace CollectionsApplication {
   class Program {
      static void Main(string[] args) {
         //creating two  bit arrays of size 8
         BitArray ba1 = new BitArray(8);
         BitArray ba2 = new BitArray(8);
         
         byte[] a = { 60 };
         byte[] b = { 13 };
         
         //storing the values 60, and 13 into the bit arrays
         ba1 = new BitArray(a);
         ba2 = new BitArray(b);
         
         //content of ba1
         Console.WriteLine("Bit array ba1: 60");
         
         for (int i = 0; i < ba1.Count; i++) {
            Console.Write("{0, -6} ", ba1[i]);
         }
         Console.WriteLine();
         
         //content of ba2
         Console.WriteLine("Bit array ba2: 13");
         
         for (int i = 0; i < ba2.Count; i++) {
            Console.Write("{0, -6} ", ba2[i]);
         }
         Console.WriteLine();
         BitArray ba3 = new BitArray(8);
         ba3 = ba1.And(ba2);
         
         //content of ba3
         Console.WriteLine("Bit array ba3 after AND operation: 12");
         
         for (int i = 0; i < ba3.Count; i++) {
            Console.Write("{0, -6} ", ba3[i]);
         }
         Console.WriteLine();
         ba3 = ba1.Or(ba2);
         
         //content of ba3
         Console.WriteLine("Bit array ba3 after OR operation: 61");
         
         for (int i = 0; i < ba3.Count; i++) {
            Console.Write("{0, -6} ", ba3[i]);
         }
         Console.WriteLine();

         Console.ReadKey();
      }
   }
}

Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:

Bit array ba1: 60 
False False True True True True False False 
Bit array ba2: 13
True False True True False False False False 
Bit array ba3 after AND operation: 12
False False True True False False False False 
Bit array ba3 after OR operation: 61
True False True True False False False False