none
Hexadeziemale Zahl in Integer oder Float wandeln RRS feed

  • Frage

  • Hallo,

    ich möchte eine Hexadezimale Zahl, welchen ich als String von einer Seriellen Schnittstelle empfange in einen Integer oder noch besser in einen Float wandeln.

    Wie geht das??

    MfG Medalione

    Montag, 26. Juli 2010 10:06

Antworten

  • Hallo

    > Hexadezimale Zahl, welchen ich als String ...in einen Integer wandeln

    etwa Convert.ToInt32 mit 16-Basis:
    http://msdn.microsoft.com/en-us/library/1k20k614.aspx

    oder Parse/TryParse-Varianten
    http://msdn.microsoft.com/en-us/library/bb311038.aspx

    Ich vermute dein 'Float' wird als mehre Bytes  (in Hexadec-schreibweise) übertragen?
    Dann evtl.  (via Byte-Array), BitConverter, hier nach Single:
    http://msdn.microsoft.com/en-us/library/system.bitconverter.tosingle.aspx

    wobei das interne, binäre Format (IEEE) übereinstimmen muss.
    Andernfalls bitte hier Zahlen-Bsp posten.

    Montag, 26. Juli 2010 10:17
  • Hallo,

    ich möchte eine Hexadezimale Zahl, welchen ich als String von einer
    Seriellen Schnittstelle empfange in einen Integer oder noch besser
    in einen Float wandeln.

    Wie geht das??

    Zum Bleistift so:

        Private Sub AnySub()
            Dim Buffer As String
            Dim Value As int64

            Buffer = "3C4F21AA1C"

            If Long.TryParse _
                    (Buffer, _
                     Globalization.NumberStyles.HexNumber, _
                     Application.CurrentCulture, _
                     Value _
                    ) Then

                MsgBox _
                    ("Hex: " & Buffer & ControlChars.CrLf & _
                     "Dez: " & Value.ToString)
            Else
                MsgBox _
                    ("Buffer enthält keinen gültigen Wert!", _
                     MsgBoxStyle.Exclamation)
            End If

        End Sub

    Gruß aus St.Georgen
    Peter Götz
    www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

    Montag, 26. Juli 2010 10:29

Alle Antworten

  • Hallo

    > Hexadezimale Zahl, welchen ich als String ...in einen Integer wandeln

    etwa Convert.ToInt32 mit 16-Basis:
    http://msdn.microsoft.com/en-us/library/1k20k614.aspx

    oder Parse/TryParse-Varianten
    http://msdn.microsoft.com/en-us/library/bb311038.aspx

    Ich vermute dein 'Float' wird als mehre Bytes  (in Hexadec-schreibweise) übertragen?
    Dann evtl.  (via Byte-Array), BitConverter, hier nach Single:
    http://msdn.microsoft.com/en-us/library/system.bitconverter.tosingle.aspx

    wobei das interne, binäre Format (IEEE) übereinstimmen muss.
    Andernfalls bitte hier Zahlen-Bsp posten.

    Montag, 26. Juli 2010 10:17
  • Hallo,

    ich möchte eine Hexadezimale Zahl, welchen ich als String von einer
    Seriellen Schnittstelle empfange in einen Integer oder noch besser
    in einen Float wandeln.

    Wie geht das??

    Zum Bleistift so:

        Private Sub AnySub()
            Dim Buffer As String
            Dim Value As int64

            Buffer = "3C4F21AA1C"

            If Long.TryParse _
                    (Buffer, _
                     Globalization.NumberStyles.HexNumber, _
                     Application.CurrentCulture, _
                     Value _
                    ) Then

                MsgBox _
                    ("Hex: " & Buffer & ControlChars.CrLf & _
                     "Dez: " & Value.ToString)
            Else
                MsgBox _
                    ("Buffer enthält keinen gültigen Wert!", _
                     MsgBoxStyle.Exclamation)
            End If

        End Sub

    Gruß aus St.Georgen
    Peter Götz
    www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

    Montag, 26. Juli 2010 10:29