📜  C#|将BitArray中特定位置的位设置为指定值

📅  最后修改于: 2021-05-29 21:02:14             🧑  作者: Mango

BitArray类管理一个紧凑的位值数组,这些值表示为布尔值,其中true表示该位打开,1 ,false表示该位关闭,0 。此类包含在System.Collections命名空间中。
BitArray.Set(Int32,Boolean)方法用于将BitArray中特定位置的位设置为指定值。

特性:

  • BitArray类是一个集合类,其中容量始终与计数相同。
  • 通过增加Length属性将元素添加到BitArray中。
  • 通过减小Length属性来删除元素。
  • 可以使用整数索引访问此集合中的元素。此集合中的索引从零开始。

句法:

public void Set (int index, bool value);

参数:

异常:如果索引小于零索引大于或等于BitArray中的元素数,则此方法将提供ArgumentOutOfRangeException。

注意:此方法是O(1)操作。

下面的程序说明了BitArray.Set(Int32,Boolean)方法的用法:

范例1:

// C# code to set the bit at
// a specific position in the
// BitArray to the specified value
using System;
using System.Collections;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a BitArray myBitArr
        // Initializing all the values to false
        BitArray myBitArr = new BitArray(5, false);
  
        // Printing the values in myBitArr
        // It should display all the bits as false
        Console.WriteLine("Initially the bits are as : ");
  
        PrintIndexAndValues(myBitArr);
  
        // Setting bit at index 3 to true
        myBitArr.Set(3, true);
  
        // Printing the values in myBitArr
        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);
        }
    }
}
输出:
Initially the bits are as : 
False
False
False
False
False
Finally the bits are as : 
False
False
False
True
False

范例2:

// C# code to set the bit at
// a specific position 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 bit at index 2 to false
        myBitArr.Set(2, false);
  
        // Setting bit at index 3 to true
        myBitArr.Set(3, true);
  
        // Printing the values in myBitArr
        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);
        }
    }
}
输出:
Initially the bits are as : 
False
True
True
False
True
Finally the bits are as : 
False
True
False
True
True

参考:

  • https://docs.microsoft.com/zh-cn/dotnet/api/system.collections.bitarray.set?view=netframework-4.7.2