BitVector32 Struktur
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt eine einfache Struktur bereit, in der boolesche Werte und kleine ganze Zahlen in 32 Bit Speicher gespeichert werden.
public value class BitVector32
public struct BitVector32
type BitVector32 = struct
Public Structure BitVector32
- Vererbung
Beispiele
Im folgenden Codebeispiel wird eine BitVector32 Sammlung von Bitkennzeichnungen verwendet.
using System;
using System.Collections.Specialized;
public class SamplesBitVector32 {
public static void Main() {
// Creates and initializes a BitVector32 with all bit flags set to FALSE.
BitVector32 myBV = new BitVector32( 0 );
// Creates masks to isolate each of the first five bit flags.
int myBit1 = BitVector32.CreateMask();
int myBit2 = BitVector32.CreateMask( myBit1 );
int myBit3 = BitVector32.CreateMask( myBit2 );
int myBit4 = BitVector32.CreateMask( myBit3 );
int myBit5 = BitVector32.CreateMask( myBit4 );
// Sets the alternating bits to TRUE.
Console.WriteLine( "Setting alternating bits to TRUE:" );
Console.WriteLine( " Initial: {0}", myBV.ToString() );
myBV[myBit1] = true;
Console.WriteLine( " myBit1 = TRUE: {0}", myBV.ToString() );
myBV[myBit3] = true;
Console.WriteLine( " myBit3 = TRUE: {0}", myBV.ToString() );
myBV[myBit5] = true;
Console.WriteLine( " myBit5 = TRUE: {0}", myBV.ToString() );
}
}
/*
This code produces the following output.
Setting alternating bits to TRUE:
Initial: BitVector32{00000000000000000000000000000000}
myBit1 = TRUE: BitVector32{00000000000000000000000000000001}
myBit3 = TRUE: BitVector32{00000000000000000000000000000101}
myBit5 = TRUE: BitVector32{00000000000000000000000000010101}
*/
Imports System.Collections.Specialized
Public Class SamplesBitVector32
Public Shared Sub Main()
' Creates and initializes a BitVector32 with all bit flags set to FALSE.
Dim myBV As New BitVector32(0)
' Creates masks to isolate each of the first five bit flags.
Dim myBit1 As Integer = BitVector32.CreateMask()
Dim myBit2 As Integer = BitVector32.CreateMask(myBit1)
Dim myBit3 As Integer = BitVector32.CreateMask(myBit2)
Dim myBit4 As Integer = BitVector32.CreateMask(myBit3)
Dim myBit5 As Integer = BitVector32.CreateMask(myBit4)
' Sets the alternating bits to TRUE.
Console.WriteLine("Setting alternating bits to TRUE:")
Console.WriteLine(" Initial: {0}", myBV.ToString())
myBV(myBit1) = True
Console.WriteLine(" myBit1 = TRUE: {0}", myBV.ToString())
myBV(myBit3) = True
Console.WriteLine(" myBit3 = TRUE: {0}", myBV.ToString())
myBV(myBit5) = True
Console.WriteLine(" myBit5 = TRUE: {0}", myBV.ToString())
End Sub
End Class
' This code produces the following output.
'
' Setting alternating bits to TRUE:
' Initial: BitVector32{00000000000000000000000000000000}
' myBit1 = TRUE: BitVector32{00000000000000000000000000000001}
' myBit3 = TRUE: BitVector32{00000000000000000000000000000101}
' myBit5 = TRUE: BitVector32{00000000000000000000000000010101}
Im folgenden Codebeispiel wird eine BitVector32 Sammlung von Abschnitten verwendet.
using System;
using System.Collections.Specialized;
public class SamplesBitVector32 {
public static void Main() {
// Creates and initializes a BitVector32.
BitVector32 myBV = new BitVector32( 0 );
// Creates four sections in the BitVector32 with maximum values 6, 3, 1, and 15.
// mySect3, which uses exactly one bit, can also be used as a bit flag.
BitVector32.Section mySect1 = BitVector32.CreateSection( 6 );
BitVector32.Section mySect2 = BitVector32.CreateSection( 3, mySect1 );
BitVector32.Section mySect3 = BitVector32.CreateSection( 1, mySect2 );
BitVector32.Section mySect4 = BitVector32.CreateSection( 15, mySect3 );
// Displays the values of the sections.
Console.WriteLine( "Initial values:" );
Console.WriteLine( "\tmySect1: {0}", myBV[mySect1] );
Console.WriteLine( "\tmySect2: {0}", myBV[mySect2] );
Console.WriteLine( "\tmySect3: {0}", myBV[mySect3] );
Console.WriteLine( "\tmySect4: {0}", myBV[mySect4] );
// Sets each section to a new value and displays the value of the BitVector32 at each step.
Console.WriteLine( "Changing the values of each section:" );
Console.WriteLine( "\tInitial: \t{0}", myBV.ToString() );
myBV[mySect1] = 5;
Console.WriteLine( "\tmySect1 = 5:\t{0}", myBV.ToString() );
myBV[mySect2] = 3;
Console.WriteLine( "\tmySect2 = 3:\t{0}", myBV.ToString() );
myBV[mySect3] = 1;
Console.WriteLine( "\tmySect3 = 1:\t{0}", myBV.ToString() );
myBV[mySect4] = 9;
Console.WriteLine( "\tmySect4 = 9:\t{0}", myBV.ToString() );
// Displays the values of the sections.
Console.WriteLine( "New values:" );
Console.WriteLine( "\tmySect1: {0}", myBV[mySect1] );
Console.WriteLine( "\tmySect2: {0}", myBV[mySect2] );
Console.WriteLine( "\tmySect3: {0}", myBV[mySect3] );
Console.WriteLine( "\tmySect4: {0}", myBV[mySect4] );
}
}
/*
This code produces the following output.
Initial values:
mySect1: 0
mySect2: 0
mySect3: 0
mySect4: 0
Changing the values of each section:
Initial: BitVector32{00000000000000000000000000000000}
mySect1 = 5: BitVector32{00000000000000000000000000000101}
mySect2 = 3: BitVector32{00000000000000000000000000011101}
mySect3 = 1: BitVector32{00000000000000000000000000111101}
mySect4 = 9: BitVector32{00000000000000000000001001111101}
New values:
mySect1: 5
mySect2: 3
mySect3: 1
mySect4: 9
*/
Imports System.Collections.Specialized
Public Class SamplesBitVector32
Public Shared Sub Main()
' Creates and initializes a BitVector32.
Dim myBV As New BitVector32(0)
' Creates four sections in the BitVector32 with maximum values 6, 3, 1, and 15.
' mySect3, which uses exactly one bit, can also be used as a bit flag.
Dim mySect1 As BitVector32.Section = BitVector32.CreateSection(6)
Dim mySect2 As BitVector32.Section = BitVector32.CreateSection(3, mySect1)
Dim mySect3 As BitVector32.Section = BitVector32.CreateSection(1, mySect2)
Dim mySect4 As BitVector32.Section = BitVector32.CreateSection(15, mySect3)
' Displays the values of the sections.
Console.WriteLine("Initial values:")
Console.WriteLine(ControlChars.Tab + "mySect1: {0}", myBV(mySect1))
Console.WriteLine(ControlChars.Tab + "mySect2: {0}", myBV(mySect2))
Console.WriteLine(ControlChars.Tab + "mySect3: {0}", myBV(mySect3))
Console.WriteLine(ControlChars.Tab + "mySect4: {0}", myBV(mySect4))
' Sets each section to a new value and displays the value of the BitVector32 at each step.
Console.WriteLine("Changing the values of each section:")
Console.WriteLine(ControlChars.Tab + "Initial: " + ControlChars.Tab + "{0}", myBV.ToString())
myBV(mySect1) = 5
Console.WriteLine(ControlChars.Tab + "mySect1 = 5:" + ControlChars.Tab + "{0}", myBV.ToString())
myBV(mySect2) = 3
Console.WriteLine(ControlChars.Tab + "mySect2 = 3:" + ControlChars.Tab + "{0}", myBV.ToString())
myBV(mySect3) = 1
Console.WriteLine(ControlChars.Tab + "mySect3 = 1:" + ControlChars.Tab + "{0}", myBV.ToString())
myBV(mySect4) = 9
Console.WriteLine(ControlChars.Tab + "mySect4 = 9:" + ControlChars.Tab + "{0}", myBV.ToString())
' Displays the values of the sections.
Console.WriteLine("New values:")
Console.WriteLine(ControlChars.Tab + "mySect1: {0}", myBV(mySect1))
Console.WriteLine(ControlChars.Tab + "mySect2: {0}", myBV(mySect2))
Console.WriteLine(ControlChars.Tab + "mySect3: {0}", myBV(mySect3))
Console.WriteLine(ControlChars.Tab + "mySect4: {0}", myBV(mySect4))
End Sub
End Class
' This code produces the following output.
'
' Initial values:
' mySect1: 0
' mySect2: 0
' mySect3: 0
' mySect4: 0
' Changing the values of each section:
' Initial: BitVector32{00000000000000000000000000000000}
' mySect1 = 5: BitVector32{00000000000000000000000000000101}
' mySect2 = 3: BitVector32{00000000000000000000000000011101}
' mySect3 = 1: BitVector32{00000000000000000000000000111101}
' mySect4 = 9: BitVector32{00000000000000000000001001111101}
' New values:
' mySect1: 5
' mySect2: 3
' mySect3: 1
' mySect4: 9
Hinweise
BitVector32 ist effizienter als BitArray für boolesche Werte und kleine ganze Zahlen, die intern verwendet werden. Ein BitArray Kann beliebig unbegrenzt wachsen, hat jedoch den Arbeitsspeicher und den Leistungsaufwand, den eine Klasseninstanz benötigt. Im Gegensatz dazu BitVector32 werden nur 32 Bit verwendet.
Eine BitVector32 Struktur kann so eingerichtet werden, dass sie entweder Abschnitte für kleine ganze Zahlen oder Bitkennzeichnungen für Booleaner enthält, aber nicht beide. A BitVector32.Section ist ein Fenster in das BitVector32 Und besteht aus der kleinsten Anzahl aufeinander folgender Bits, die den in .CreateSection Ein Abschnitt mit dem Maximalwert 1 besteht beispielsweise aus nur einem Bit, während ein Abschnitt mit einem Maximalwert von 5 aus drei Bit besteht. Sie können einen BitVector32.Section Wert mit einem Maximalwert von 1 erstellen, der als boolescher Wert dient, wodurch Sie ganze Zahlen und Boolesche Werte in demselben BitVector32speichern können.
Einige Member können für ein BitVector32 Element verwendet werden, das als Abschnitte eingerichtet ist, während andere Member für ein Element verwendet werden können, das als Bitkennzeichnungen eingerichtet ist. Die Eigenschaft ist z. B. der Indexer für ein Objekt, BitVector32.Item[] das als Abschnitte eingerichtet ist, und die BitVector32.Item[] Eigenschaft ist der Indexer für ein BitVector32 Objekt, das als Bitkennzeichnungen eingerichtet BitVector32 ist. CreateMask erstellt eine Reihe von Masken, die verwendet werden können, um auf einzelne Bits in einem BitVector32 Format zuzugreifen, das als Bitkennzeichnungen eingerichtet ist.
Die Verwendung eines Maskenformats, BitVector32 das als Abschnitte eingerichtet ist, kann zu unerwarteten Ergebnissen führen.
Konstruktoren
| Name | Beschreibung |
|---|---|
| BitVector32(BitVector32) |
Initialisiert eine neue Instanz der BitVector32 Struktur, die die in einer vorhandenen BitVector32 Struktur dargestellten Daten enthält. |
| BitVector32(Int32) |
Initialisiert eine neue Instanz der BitVector32 Struktur, die die in einer ganzen Zahl dargestellten Daten enthält. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Data |
Ruft den Wert der BitVector32 als ganze Zahl ab. |
| Item[BitVector32+Section] |
Dient zum Abrufen oder Festlegen des werts, der in der angegebenen .BitVector32.Section |
| Item[Int32] |
Dient zum Abrufen oder Festlegen des Zustands der Bitkennzeichnung, die durch die angegebene Maske angegeben ist. |
Methoden
| Name | Beschreibung |
|---|---|
| CreateMask() |
Erstellt die erste Maske in einer Reihe von Masken, die verwendet werden können, um einzelne Bits in einem BitVector32 Format abzurufen, das als Bitkennzeichnungen eingerichtet ist. |
| CreateMask(Int32) |
Erstellt eine zusätzliche Maske nach der angegebenen Maske in einer Reihe von Masken, die verwendet werden können, um einzelne Bits in einem BitVector32 Als Bitkennzeichnung eingerichteten abzurufen. |
| CreateSection(Int16, BitVector32+Section) |
Erstellt eine neue BitVector32.Section Folge der in einer Reihe von Abschnitten angegebenen BitVector32.Section , die kleine ganze Zahlen enthalten. |
| CreateSection(Int16) |
Erstellt den ersten BitVector32.Section in einer Reihe von Abschnitten, die kleine ganze Zahlen enthalten. |
| Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem BitVector32. |
| GetHashCode() |
Dient als Hashfunktion für die BitVector32. |
| ToString() |
Gibt eine Zeichenfolge zurück, die die aktuelle BitVector32darstellt. |
| ToString(BitVector32) |
Gibt eine Zeichenfolge zurück, die die angegebene BitVector32darstellt. |