C# | Clase BitArray

La clase BitArray administra una array compacta de valores de bits, que se representan como valores booleanos, donde verdadero indica que el bit está activado , es decir, 1 y falso indica que el bit está desactivado , es decir, 0 . Esta clase está contenida en el espacio de nombres System.Collections .

Propiedades de la clase BitArray:

  • La clase BitArray es una clase de colección en la que la capacidad es siempre la misma que la cuenta.
  • Los elementos se agregan a un BitArray aumentando la propiedad Longitud .
  • Los elementos se eliminan al disminuir la propiedad Longitud .
  • Se puede acceder a los elementos de esta colección mediante un índice entero. Los índices de esta colección están basados ​​en cero.

Constructores

Constructor Descripción
Array de bits(Array de bits) Inicializa una nueva instancia de la clase BitArray que contiene valores de bits copiados del BitArray especificado.
BitArray(Booleano[]) Inicializa una nueva instancia de la clase BitArray que contiene valores de bits copiados de la array especificada de valores booleanos.
BitArray(Byte[]) Inicializa una nueva instancia de la clase BitArray que contiene valores de bits copiados de la array de bytes especificada.
Array de bits (Int32) Inicializa una nueva instancia de la clase BitArray que puede contener el número especificado de valores de bits, que inicialmente se establecen en false.
BitArray(Int32, Booleano) Inicializa una nueva instancia de la clase BitArray que puede contener el número especificado de valores de bits, que inicialmente se establecen en el valor especificado.
Array de bits (Int32 []) Inicializa una nueva instancia de la clase BitArray que contiene valores de bits copiados de la array especificada de enteros de 32 bits.

Ejemplo:

// C# code to create a BitArray
using System;
using System.Collections;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a BitArray
        BitArray myBitArr = new BitArray(5);
  
        myBitArr[0] = true;
        myBitArr[1] = true;
        myBitArr[2] = false;
        myBitArr[3] = true;
        myBitArr[4] = false;
  
        // To get the value of index at index 2
        Console.WriteLine(myBitArr.Get(2));
  
        // To get the value of index at index 3
        Console.WriteLine(myBitArr.Get(3));
    }
}

Producción:

False
True

Propiedades

Propiedad Descripción
Contar Obtiene el número de elementos contenidos en el BitArray.
es solo lectura Obtiene un valor que indica si BitArray es de solo lectura.
Está sincronizado Obtiene un valor que indica si el acceso a BitArray está sincronizado (seguro para subprocesos).
Artículo[Int32] Obtiene o establece el valor del bit en una posición específica en BitArray.
Longitud Obtiene o establece el número de elementos de BitArray.
SyncRoot Obtiene un objeto que se puede usar para sincronizar el acceso a BitArray.

Ejemplo:

// C# program to illustrate the 
// BitArray Class Properties
using System; 
using System.Collections; 
  
class GFG { 
    
    // Driver code 
    public static void Main() 
    { 
    
        // Creating a BitArray 
        BitArray myBitArr = new BitArray(new byte[] { 0, 0, 0, 1 }); 
    
        // -------- IsReadOnly Property --------
          
        // Checking if the BitArray is read-only 
        Console.WriteLine(myBitArr.IsReadOnly); 
          
        // -------- Count Property --------
          
        // To get the number of elements 
        // contained in the BitArray 
        Console.WriteLine(myBitArr.Count); 
          
    } 
} 

Producción:

False
32

Métodos

Método Descripción
y (array de bits) Realiza la operación AND bit a bit entre los elementos del objeto BitArray actual y los elementos correspondientes en la array especificada. El objeto BitArray actual se modificará para almacenar el resultado de la operación AND bit a bit.
Clon() Crea una copia superficial de BitArray.
Copiar a (array, Int32) Copia todo el BitArray en un Array unidimensional compatible, comenzando en el índice especificado del conjunto de destino.
Es igual a (Objeto) Determina si el objeto especificado es igual al objeto actual.
Obtener (Int32) Obtiene el valor del bit en una posición específica en BitArray.
ObtenerEnumerador() Devuelve un enumerador que itera a través de BitArray.
Desplazamiento a la izquierda (Int32) Se utiliza para desplazar los bits de la array de bits hacia la izquierda una posición y agrega ceros en la posición desplazada.
Obtener código hash() Sirve como la función hash predeterminada.
ObtenerTipo() Obtiene el Tipo de la instancia actual.
MemberwiseClone() Crea una copia superficial del objeto actual.
No() Invierte todos los valores de bits en el BitArray actual, de modo que los elementos establecidos en verdadero se cambien a falso, y los elementos establecidos en falso se cambien a verdadero.
Desplazamiento a la derecha(Int32) Se utiliza para desplazar los bits de la array de bits hacia la derecha una posición y agrega ceros en la posición desplazada.
O (array de bits) Realiza la operación OR bit a bit entre los elementos del objeto BitArray actual y los elementos correspondientes en la array especificada. El objeto BitArray actual se modificará para almacenar el resultado de la operación OR bit a bit.
Conjunto (Int32, Booleano) Establece el bit en una posición específica en BitArray al valor especificado.
EstablecerTodo(Booleano) Establece todos los bits en el BitArray al valor especificado.
Enstringr() Devuelve una string que representa el objeto actual.
Xor(array de bits) Realiza la operación OR exclusiva bit a bit entre los elementos del objeto BitArray actual contra los elementos correspondientes en la array especificada. El objeto BitArray actual se modificará para almacenar el resultado de la operación OR exclusiva bit a bit.

Ejemplo 1:

// C# code to do bitwise
// OR between BitArray
using System;
using System.Collections;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a BitArray
        BitArray myBitArr1 = new BitArray(4);
  
        // Creating a BitArray
        BitArray myBitArr2 = new BitArray(4);
  
        // Initializing values in myBitArr1
        myBitArr1[0] = false;
        myBitArr1[1] = false;
        myBitArr1[2] = true;
        myBitArr1[3] = true;
  
        // Initializing values in myBitArr2
        myBitArr2[0] = false;
        myBitArr2[2] = false;
        myBitArr2[1] = true;
        myBitArr2[3] = true;
  
        // function calling
        PrintValues(myBitArr1.Or(myBitArr2));
    }
  
    // Displaying the result
    public static void PrintValues(IEnumerable myList)
    {
        foreach(Object obj in myList)
        {
            Console.WriteLine(obj);
        }
    }
}

Producción:

False
True
True
True

Ejemplo 2:

// C# code to set all bits in the
// BitArray to the specified value
using System;
using System.Collections;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a BitArray myBitArr
        BitArray myBitArr = new BitArray(5);
  
        // Initializing all the bits in myBitArr
        myBitArr[0] = false;
        myBitArr[1] = true;
        myBitArr[2] = true;
        myBitArr[3] = false;
        myBitArr[4] = true;
  
        // Printing the values in myBitArr
        Console.WriteLine("Initially the bits are as : ");
  
        PrintIndexAndValues(myBitArr);
  
        // Setting all bits to false
        myBitArr.SetAll(false);
  
        // Printing the values in myBitArr
        // It should display all the bits as false
        Console.WriteLine("Finally the bits are as : ");
  
        PrintIndexAndValues(myBitArr);
    }
  
    // Function to display bits
    public static void PrintIndexAndValues(IEnumerable myArr)
    {
        foreach(Object obj in myArr)
        {
            Console.WriteLine(obj);
        }
    }
}

Producción:

Initially the bits are as : 
False
True
True
False
True
Finally the bits are as : 
False
False
False
False
False

Referencia:

Publicación traducida automáticamente

Artículo escrito por Sahil_Bansall y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *