Hexadezimaldaten lesen und in Hexadezimal lassen



  • Hallo Leute,

    ich habe gerade ein Problem und zwar soll ich über den COM-Port Daten lesen als Hexadezimal lesen. Also das Gerät schickt die Daten als Hexadezimal, aber wenn ich diese in einem char speicher werden die Daten doch direkt übersetzt (z.B. 41 zu H usw.). Wie kann ich die daten als Hexadezimal lassen, also 0x41...? Ich hoffe ich ihr könnt mir helfen.

    Vielen dank im Voraus.
    Root4Live



  • Geht das nicht, wenn du nur Byteweise ließt?
    Ist natürlich schlecht wegen COM-Überlauf, aber dann sollte es doch gehen. Oder ist ein Hexadezimalwert ein Byte?


  • Mod

    Es gibt keinen Unterschied zwischen den Zahlensystemen. In der Variablen steht der Wert einer Zahl (chars sind auch Zahlen), nicht ihre Repräsentation in einem bestimmten Stellenwertsystem. Genausowenig schickt dir dein Gerät die Zahlen im Hex-System, es werden Werte übertragen.

    Dein Problem ist einzig bei der Ausgabe, da die Werte von chars standardmäßig als Zeichen interpretiert werden. Du willst anscheinend, dass sie in einem hexadezimalen Stellenwertsystem ausgegeben werden. Die Lösung ist es, die Ausgabefunktionen so zu manipulieren, dass dies geschieht. Dies kann beispielsweise durch geschicktes casten und/oder Einsatz von Manipulatoren für die Ausgabe geschehen.


Anmelden zum Antworten