C# | Bitwise AND between the elements of BitArray

The BitArray class manages a compact array of bit values, which are represented as Booleans, where true indicates that the bit is on i.e, 1 and false indicates the bit is off i.e, 0. This class is contained in System.Collections namespace.
BitArray.And(BitArray) method is used to perform the bitwise AND operation between the elements of the current BitArray object and the corresponding elements in the specified array.
The current BitArray object will be modified to store the result of the bitwise AND operation.

Properties:

  • The BitArray class is a collection class in which the capacity is always the same as the count.
  • Elements are added to a BitArray by increasing the Length property.
  • Elements are deleted by decreasing the Length property.
  • The BitArray class provides methods like And, Or, Xor, Not, and SetAll.
  • Elements in this collection can be accessed using an integer index. Indexes in this collection are zero-based.

Syntax:

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

Here, value is the array with which to perform the bitwise AND operation.

Return Value: It returns an array containing the result of the bitwise AND operation, which is a reference to the current BitArray object.

Exceptions:

  • ArgumentNullException : If the value is null.
  • ArgumentException : If the value and the current BitArray do not have the same number of elements.

Below given are some examples to understand the implementation in a better way:

Example 1:

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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);
        }
    }
}

chevron_right


Output:

False
False
False
True

Example 2:

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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);
        }
    }
}

chevron_right


Runtime Error:

Unhandled Exception:
System.ArgumentException: Array lengths must be the same.

Note:

  • The bitwise AND operation returns true if both operands are true, and returns false if one or both operands are false.
  • This method is an O(n) operation, where n is Count.

Reference:



My Personal Notes arrow_drop_up

In love with a semicolon because sometimes i miss it so badly)

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.