C # - Clase BitArray

La clase BitArray administra una matriz compacta de valores de bits, que se representan como booleanos, donde verdadero indica que el bit está activado (1) y falso indica que el bit está desactivado (0).

Se utiliza cuando necesita almacenar los bits pero no conoce el número de bits de antemano. Puede acceder a elementos de la colección BitArray mediante un índice entero, que comienza desde cero.

Métodos y propiedades de la clase BitArray

La siguiente tabla enumera algunos de los properties del BitArray clase -

No Señor. Descripción de propiedad
1

Count

Obtiene el número de elementos contenidos en BitArray.

2

IsReadOnly

Obtiene un valor que indica si BitArray es de solo lectura.

3

Item

Obtiene o establece el valor del bit en una posición específica en BitArray.

4

Length

Obtiene o establece el número de elementos de BitArray.

La siguiente tabla enumera algunos de los methods del BitArray clase -

No Señor. Método y descripción
1

public BitArray And(BitArray value);

Realiza la operación AND bit a bit en los elementos del BitArray actual contra los elementos correspondientes en el BitArray especificado.

2

public bool Get(int index);

Obtiene el valor del bit en una posición específica en BitArray.

3

public BitArray Not();

Invierte todos los valores de bits en el BitArray actual, de modo que los elementos establecidos en verdadero se cambian a falso y los elementos establecidos en falso se cambian a verdadero.

4

public BitArray Or(BitArray value);

Realiza la operación OR bit a bit en los elementos del BitArray actual contra los elementos correspondientes en el BitArray especificado.

5

public void Set(int index, bool value);

Establece el bit en una posición específica en BitArray al valor especificado.

6

public void SetAll(bool value);

Establece todos los bits de BitArray en el valor especificado.

7

public BitArray Xor(BitArray value);

Realiza la operación OR eXclusiva bit a bit en los elementos en el BitArray actual contra los elementos correspondientes en el BitArray especificado.

Ejemplo

El siguiente ejemplo demuestra el uso de la clase 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();
      }
   }
}

Cuando se compila y ejecuta el código anterior, produce el siguiente 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