VB.Net BitArray類

BitArray類管理一個緊湊的位值數組,表示為布爾值,其中true表示該位為on(1)false表示該位為off(0)

當需要存儲比特位,但是事先不知道比特數時使用可使用BitArray類。可以使用從零開始的整數索引來訪問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

上一篇: VB.Net集合 下一篇: VB.Net函數