Announcement

Collapse
No announcement yet.

Bitoperationen, Bitarrays

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Bitoperationen, Bitarrays

    Hi,
    bin Neuling in der .NET – Welt, habe allerdings bei anderen Programmiersprachen (vor allem "nicht-OOP") viele Harre verloren. Jetzt kann ich mich vor VB.NET nicht mehr verstecken und wie das so ist, stöße gleich auf ein Problem, das ich alleine nicht lösen kann – die Online-Hilfe, bzw. die Bücher, die ich zur Verfügung habe, haben mich auch nicht weiter gebracht.
    Es geht um Bitoperationen. Ich habe mir die BitArray – Klasse angeschaut, die wunderbare Methoden zur Bit - Gymnastik zur Verfügung stellt: man kann jedes einzelne Bit setzen, abfragen, es gibt AND, OR, NOT usw.
    Die Werte, die man verarbeiten will, stecken jedoch meistens in einem kompletten Byte oder Integer (z.B. über die RS232 empfangen). Ich habe leider keine Ahnung (und davon jede Menge), wie man ein Byte in so ein BITArray (und wieder zurück) konvertiert.
    Für jede Hilfe bin ich dankbar!

  • #2
    Hallo,

    es gibt zum einen den <i>System.BitConverter</i> und zum anderen die Auswertungs-Optionen der Bit-Maskierung bzw. der Bit-Shift-Operatoren. Die folgenden Beispiele demonstrieren das Hantieren.
    <br>
    a) Bit-Maskierung;
    <code>
    Private Sub Form1_MouseMove(ByVal sender As Object, _
    ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
    If ((e.Button And MouseButtons.Right) = MouseButtons.Right) Then
    Log("Rechte Maustaste erkannt")
    If ((e.Button And MouseButtons.Left) = MouseButtons.Left) Then
    Log("Linke Maustaste erkannt")
    End If
    End If
    End Sub
    </code>
    b) Bit-Shift Operatoren (in Verbindung mit der Bit-Maskierung):
    <code>
    Dim myFavoriteColor As Integer = 16773077
    Dim R, G, B As Byte
    R = myFavoriteColor >> 16
    G = (myFavoriteColor And &HFF00) >> 8
    B = (myFavoriteColor And &HFF)
    </code&gt

    Comment


    • #3
      Hallo Andreas,

      vielen Dank für die Antwort,

      der BitConverter arbeitet nur mit kompletten Bytes, Integer und größer (wer hat sich den Namen für diese Klasse ausgedacht???).
      Ich werde also doch auf die alt bewerte Methode der Bit-Maskierung und das Schieben zurückgreifen.

      gruß Stefa

      Comment

      Working...
      X