Sisältö - Array taulukot - Array luokka - BitArray - Esimerkki BitArray

BitArray luokka

BitArray on boolean tyyppinen (iso) taulukko, jolla on tarpeellisia ominaisuuksia bitti operaatioden laskemiseksi kuten AND, OR, XOR, NOT kaikille biteille yhtä aikaa.

Aiheet:
Alustaminen - Bitti operaatiot - Monistus - Ominaisuuksia - Enumerointi

Alustaminen

        ' esitellään ja koko määrätään 800 bittiä
        Dim ba1 As BitArray = New BitArray(800)
        '
        ' bitit asetetaan
        Dim ba2 As BitArray = New BitArray(800, True)
        '
        'byte taulukon perusteella
        Dim bytes(100) As Byte : bytes(0) = 255
        Dim ba3 As BitArray = New BitArray(bytes)
        '
        'boolean taulukon perusteella
        Dim booleans(800) As Boolean
        Dim ba4 As BitArray = New BitArray(booleans)
        '
        'integer taulukon perusteella
        Dim values(200) As Integer
        Dim ba5 As BitArray = New BitArray(values)
        '
        'toiseen bitArray:hin perustuen
        Dim ba6 As BitArray = New BitArray(ba2)
      

Bitti operaatiot

        ' AND
        ba1 = ba2.And(ba3)
        ' OR
        ba2.Or(ba3)
        ' XOR
        ba2.Xor(ba3)
        ' XOR
        ba2.Not()
        'Kaikki bitit todeksi
        ba1.SetAll(True)
        'Tietyn bitin asetus
        ba1.Set(18, False)
        'Tietyn bitin luku
        Dim totuus As Boolean
        totuus = ba1.Get(18)
        'set ja get
        ba1.Item(18) = False
        totuus = ba1.Item(18)
       

Monistus

        'Kloonaaminen
        ba6 = CType(ba1.Clone, BitArray)
        '
        'Kopiointi taulukkoon
        ba1.CopyTo(bytes, 0)
        ba1.CopyTo(values, 0)
        ba1.CopyTo(booleans, 0)

Ominaisuuksia

        'Bittien määrä
        Dim Lukumäärä As Integer
        Lukumäärä = ba1.Count()
        '
        'Onko vain luettava
        totuus = ba1.IsReadOnly
        'Pituus
        Lukumäärä = ba1.Length()

Enumerointi

        'Enumerointi
        Dim b As Boolean
        For Each b In ba1
            ' Insert your code here.
        Next b
        'Enumerointi, lukittu muilta säikeiltä
        SyncLock ba1.SyncRoot
            For Each b In ba1
                ' Insert your code here.
            Next b
        End SyncLock
        ' enumerointi vaikeammin
        Dim enu As Object = ba1.GetEnumerator
        For Each enu In ba1
            ' Insert your code here.
        Next enu
        '
        'tarkistus onko joku muu säie lukinnut
        totuus = ba1.IsSynchronized