Dezimalzahl nach HEX konvertieren



  • Hallo Gemeinde,

    wie kann ich eine Dezimalzahl im Builder in eine HEX-Zahl konvertieren?
    Die Suche spuckt dazu einfach nichts aus.

    Ich übertrage von meiner Builder-Applikation per RS232 Daten an einen Mikrokontroller. Dieser hat nur einen Buffer von 2 Zeichen. Die Werte, die übertragen werden, liegen zwischen 0 und 255. Die 3 Stellen tun mir weh, da es passieren kann, dass ich den Buffer im MC nicht schnell genug leeren kann und ich dann einen Überlauffehler bekomme. Daher meine Idee, die Daten als HEX-Wert zu übertragen. Dann bleibe ich bei 2 Zeichen und mein Problem wäre gelöst.

    Wenn ich dezimal nur 2 Zeichen sende (also 0-99) funktioniert alles prima.

    Wie kann ich also z.B dez 123 nach hex 7B wandeln?

    Schon mal DANKE für eure Hilfe.

    Gruß

    Uwe

    Builder 5



  • Dann schick's doch binär, dann haste's in nur einem Zeichen.



  • Hallo,

    aus deiner Fragestellung geht nicht eindeutig hervor, ob die Daten Binär (0x7B) oder in Textform ("7B") übertragen werden.
    Bei binärer übertragung ergibt sich m.E. dieses Problem erst gar nicht, da im Speicher bereits alles in Hex-Form vorliegt.
    Zur Übertragung in Textform kannst du sie ganz einfach mit sprintf formatieren:

    int i = 123;
    AnsiString s;
    s.sprintf("%02X",i);
    
    int i = 123;
    char cStr[3];
    sprintf(cStr,"%02X",i);
    


  • Bei binärer übertragung ergibt sich m.E. dieses Problem erst gar nicht, da im Speicher bereits alles in Hex-Form vorliegt.

    Das wär mir neu.
    Im Speicher liegt alles nur im binären Format vor.
    Alles eine Sache der Umwandlung.
    Grundlagen.


Anmelden zum Antworten