C # - classe BitArray

A classe BitArray gerencia uma matriz compacta de valores de bit, que são representados como booleanos, onde true indica que o bit está ativado (1) e false indica que o bit está desativado (0).

É usado quando você precisa armazenar os bits, mas não sabe o número de bits com antecedência. Você pode acessar itens da coleção BitArray usando um índice inteiro, que começa do zero.

Métodos e propriedades da classe BitArray

A tabela a seguir lista alguns dos comumente usados properties do BitArray classe -

Sr. Não. Descrição da Propriedade
1

Count

Obtém o número de elementos contidos no BitArray.

2

IsReadOnly

Obtém um valor que indica se o BitArray é somente leitura.

3

Item

Obtém ou define o valor do bit em uma posição específica no BitArray.

4

Length

Obtém ou define o número de elementos no BitArray.

A tabela a seguir lista alguns dos comumente usados methods do BitArray classe -

Sr. Não. Método e Descrição
1

public BitArray And(BitArray value);

Executa a operação bit a bit AND nos elementos do BitArray atual em relação aos elementos correspondentes no BitArray especificado.

2

public bool Get(int index);

Obtém o valor do bit em uma posição específica no BitArray.

3

public BitArray Not();

Inverte todos os valores de bit no BitArray atual, de forma que os elementos definidos como verdadeiros sejam alterados para falsos e os elementos definidos como falsos sejam alterados para verdadeiros.

4

public BitArray Or(BitArray value);

Executa a operação OR bit a bit nos elementos do BitArray atual em relação aos elementos correspondentes no BitArray especificado.

5

public void Set(int index, bool value);

Define o bit em uma posição específica no BitArray para o valor especificado.

6

public void SetAll(bool value);

Define todos os bits no BitArray com o valor especificado.

7

public BitArray Xor(BitArray value);

Executa a operação bit a bit eXclusive OR nos elementos do BitArray atual em relação aos elementos correspondentes no BitArray especificado.

Exemplo

O exemplo a seguir demonstra o uso da 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 o código acima é compilado e executado, ele produz o seguinte resultado -

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