C# | AND bit a bit entre los elementos de 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 .
El método BitArray.And(BitArray) se usa para realizar 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.

Propiedades:

  • 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 .
  • La clase BitArray proporciona métodos como And, Or, Xor, Not y SetAll.
  • 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.

Sintaxis:

public System.Collections.BitArray And (System.Collections.BitArray value);

Aquí, el valor es la array con la que realizar la operación AND bit a bit.

Valor de retorno: Devuelve una array que contiene el resultado de la operación AND bit a bit, que es una referencia al objeto BitArray actual.

Excepciones:

  • ArgumentNullException: si el valor es nulo.
  • ArgumentException: si el valor y el BitArray actual no tienen el mismo número de elementos.

A continuación se dan algunos ejemplos para entender la implementación de una mejor manera:

Ejemplo 1:

// C# code to do bitwise
// AND 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.And(myBitArr2));
    }
  
    // Displaying the result
    public static void PrintValues(IEnumerable myList)
    {
        foreach(Object obj in myList)
        {
            Console.WriteLine(obj);
        }
    }
}

Producción:

False
False
False
True

Ejemplo 2:

// C# code to do bitwise
// AND 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(6);
  
        // 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;
        myBitArr2[4] = true;
        myBitArr2[5] = true;
  
        // function calling
        // This should raise "ArgumentException"
        // as array lengths are not same
        PrintValues(myBitArr1.And(myBitArr2));
    }
  
    // Displaying the result
    public static void PrintValues(IEnumerable myList)
    {
        foreach(Object obj in myList)
        {
            Console.WriteLine(obj);
        }
    }
}

Error de tiempo de ejecución:

Excepción no controlada:
System.ArgumentException: las longitudes de array deben ser las mismas.

Nota:

  • La operación AND bit a bit devuelve verdadero si ambos operandos son verdaderos y devuelve falso si uno o ambos operandos son falsos.
  • Este método es una operación O(n), donde n es Count.

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 *