none
Binär maskieren eines Hex-Wertes RRS feed

  • Frage

  • Hallo,

    wie muss ich vorgehen um diesen Codeclipp in VB.NET umzusetzen:

    Code aus Powerbasic:

    _lWMN = "A00086000DE028E9"

    lDeviceClass            =  (_lWMN&$00FE000000000000)  >>    49

    Hier mein Lösungsansatz:

                Dim sMask = "00FE000000000000"
                IDeciveClass = Convert.ToUInt64(_lWMN, 16) And Convert.ToUInt64(sMask, 16) >> 49
    

    Das Ergebnis, welches ich erziele entspricht leider nicht der laut Dokumentation erziehlten Werte.

    Ich hoffe, ihr könnt mir da weiter helfen.

    Gruß

    Albrecht

    Freitag, 23. Oktober 2015 08:59

Antworten

  • Hi Albrecht,
    hier mal die einzelnen erforderlichen Schritte:

      Sub Main()
        Try
          Dim _lWMN = "A00286000DE028E9"
          Dim sMask = "00FE000000000000"
    
          Dim a As UInt64 = Convert.ToUInt64(_lWMN, 16)
          Dim b As UInt64 = Convert.ToUInt64(sMask, 16)
    
          Dim res As UInt64 = (a And b) >> 49
    
    
          Console.WriteLine(a)
          Console.WriteLine(b)
          Console.WriteLine(res)
    
        Catch ex As Exception
          Console.WriteLine(ex.Message)
        End Try
        Console.Write("Fertig")
        Console.ReadKey()
      End Sub


    --
    Viele Grüsse
    Peter Fleischer (MVP, Partner)
    Meine Homepage mit Tipps und Tricks
    Kommas richtig setzen!
    Schüler sagen, Lehrer haben es gut.
    Schüler, sagen Lehrer, haben es gut

    Freitag, 23. Oktober 2015 09:19