BitArray
類管理一個緊湊的位值陣列,表示為布林值,其中true
表示該位為on(1)
,false
表示該位為off(0)
。
當需要儲存位元位,但是事先不知道位元數時使用可使用BitArray
類。可以使用從零開始的整數索引來存取BitArray
集合中的專案。
下表列出了BitArray
類的一些常用屬性:
編號 | 屬性 | 描述 |
---|---|---|
1 | Count |
獲取BitArray 中包含的元素的數量。 |
2 | IsReadOnly |
獲取一個值,指示BitArray 是否是唯讀。 |
3 | Item |
獲取或設定BitArray 中指定位置的位的值。 |
4 | Length |
獲取或設定BitArray 中的元素數量。 |
下表列出了BitArray
類的一些常用方法:
編號 | 方法 | 描述 |
---|---|---|
1 | Public Function And (value As BitArray) As BitArray |
針對指定的BitArray 中的相應元素,對當前BitArray 中的元素執行按位元AND 運算。 |
2 | Public Function Get (index As Integer) As Boolean |
獲取BitArray 中特定位置的位的值。 |
3 | Public Function Not As BitArray |
反轉當前BitArray 中的所有位值,以便將設定為true 的元素更改為false ,將設定為false 的元素更改為true 。 |
4 | Public Function Or (value As BitArray) As BitArray |
對當前BitArray 中的元素對指定的BitArray 中的相應元素執行按位元或操作。 |
5 | Public Sub Set (index As Integer, value As Boolean ) |
將BitArray 中特定位置的位設定為指定值。 |
6 | Public Sub SetAll (value As Boolean) |
將BitArray 中的所有位設定為指定的值。 |
7 | Public Function Xor (value As BitArray) As BitArray |
針對指定的BitArray 中的相應元素,對當前BitArray 中的元素執行按位元互斥或操作。 |
以下範例演示BitArray
類的使用:
Imports System
Imports System.Collections
Imports Microsoft.VisualBasic
Public Class SamplesBitArray
Public Shared Sub Main()
' Creates and initializes two BitArrays of the same size.
Dim myBA1 As New BitArray(4)
Dim myBA2 As New BitArray(4)
myBA1(0) = False
myBA1(1) = False
myBA1(2) = True
myBA1(3) = True
myBA2(0) = False
myBA2(2) = False
myBA2(1) = True
myBA2(3) = True
' Performs a bitwise XOR operation between BitArray instances of the same size.
Console.WriteLine("Initial values")
Console.Write("myBA1:")
PrintValues(myBA1, 8)
Console.Write("myBA2:")
PrintValues(myBA2, 8)
Console.WriteLine()
Console.WriteLine("Result")
Console.Write("XOR:")
PrintValues(myBA1.Xor(myBA2), 8)
Console.WriteLine()
Console.WriteLine("After XOR")
Console.Write("myBA1:")
PrintValues(myBA1, 8)
Console.Write("myBA2:")
PrintValues(myBA2, 8)
Console.WriteLine()
' Performing XOR between BitArray instances of different sizes returns an exception.
Try
Dim myBA3 As New BitArray(8)
myBA3(0) = False
myBA3(1) = False
myBA3(2) = False
myBA3(3) = False
myBA3(4) = True
myBA3(5) = True
myBA3(6) = True
myBA3(7) = True
myBA1.Xor(myBA3)
Catch myException As Exception
Console.WriteLine("Exception: " + myException.ToString())
End Try
End Sub
Public Shared Sub PrintValues(myList As IEnumerable, myWidth As Integer)
Dim i As Integer = myWidth
Dim obj As [Object]
For Each obj In myList
If i <= 0 Then
i = myWidth
Console.WriteLine()
End If
i -= 1
Console.Write("{0,8}", obj)
Next obj
Console.WriteLine()
End Sub 'PrintValues
End Class
執行上面範例程式碼,得到以下結果 -
F:\worksp\vb.net\collection>vbc MyBitArray.vb
Microsoft (R) Visual Basic Compiler version 14.0.1038
for Visual Basic 2012
Copyright (c) Microsoft Corporation. All rights reserved.
This compiler is provided as part of the Microsoft (R) .NET Framework, but only supports language versions up to Visual Basic 2012, which is no longer the latest version. For compilers that support newer versions of the Visual Basic programming language, see http://go.microsoft.com/fwlink/?LinkID=533241
F:\worksp\vb.net\collection>MyBitArray.exe
Initial values
myBA1: False False True True
myBA2: False True False True
Result
XOR: False True True False
After XOR
myBA1: False True True False
myBA2: False True False True