VB.Net BitArray

  • BitArray

    BitArray类管理一个紧凑的位值数组,这些值表示为布尔值,其中true表示该位为开(1),false表示该位为关(0)。当您需要存储位但不事先知道位数时使用它。您可以通过使用从零开始的整数索引来访问BitArray集合中的项目。
  • BitArray 类的属性和方法

    下表列出了BitArray类的一些常用属性-
    属性 描述
    Count 获取BitArray中包含的元素数。
    IsReadOnly 获取一个值,该值指示BitArray是否为只读。
    Item 获取或设置BitArray中特定位置的位的值。
    Length 获取或设置BitArray中的元素数。
    下表列出了BitArray类的一些常用方法--
    方法 描述
    Public Function And (value As BitArray) As BitArray 对当前BitArray中的元素与指定BitArray中的相应元素执行按位与运算。
    Public Function Get (index As Integer) As Boolean 获取BitArray中特定位置的位的值。
    Public Function Not As BitArray 反转当前BitArray中的所有位值,以便将设置为true的元素更改为false,并将设置为false的元素更改为true。
    Public Function Or (value As BitArray) As BitArray 对当前BitArray中的元素与指定BitArray中的相应元素执行按位或运算。
    Public Sub Set (index As Integer, value As Boolean ) 将BitArray中特定位置的位设置为指定值。
    Public Sub SetAll (value As Boolean) 将BitArray中的所有位设置为指定值。
    Public Function Xor (value As BitArray) As BitArray 对当前BitArray中的元素与指定BitArray中的相应元素执行按位异或运算。
    示例:
    
    Imports System.Collections
    Module collections
       Sub Main()
          'creating two  bit arrays of size 8
          Dim ba1 As BitArray = New BitArray(8)
          Dim ba2 As BitArray = New BitArray(8)
          Dim a() As Byte = {60}
          Dim b() As Byte = {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")
          Dim i As Integer
          
                    For i = 0 To ba1.Count - 1
             Console.Write("{0 } ", ba1(i))
          Next i
          Console.WriteLine()
          'content of ba2
          Console.WriteLine("Bit array ba2: 13")
          
                    For i = 0 To ba2.Count -1
             Console.Write("{0 } ", ba2(i))
          Next i
          Console.WriteLine()
          Dim ba3 As BitArray = New BitArray(8)
          ba3 = ba1.And(ba2)
          'content of ba3
          Console.WriteLine("Bit array ba3 after AND operation: 12")
          
                    For i = 0 To ba3.Count -1
             Console.Write("{0 } ", ba3(i))
          Next i
          Console.WriteLine()
          ba3 = ba1.Or(ba2)
          'content of ba3
          Console.WriteLine("Bit array ba3 after OR operation: 61")
          
                    For i = 0 To ba3.Count -1
             Console.Write("{0 } ", ba3(i))
          Next i
          Console.WriteLine()
          Console.ReadKey()
       End Sub
    End Module
    
    尝试一下
    注意:BitArray索引从0开始,因此最后一个索引为长度(Count)减一
    编译并执行上述代码后,将产生以下结果-
    
    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