Hex zu Dezimal wandeln in c

OP #1712709
Lesenswert?
• ▲
▼
Hi,

ich habe hier letzt in irgendeinem C code eine sehr kurze und einfache 
Lösung gesehen um einen Hexwert(Binärwert) in einen Dezimalwert(BCD) 
umzurechnen. Es war ein zweizeiler in einer while schleife, finde ihn 
nur nicht wieder...

Wenn jemand weiß wo das ist, bitte um Rückmeldung.

Vielen Dank,
Yve
OP #1712731
Lesenswert?
• ▲
▼
Hi,

danke für die Tips, aber ich suchte explizit dieses Beispiel. Ich wollte 
keinen Modulo verwenden und auch keinen String als Ergebnis.

Ich habe meinen Fehler nun gefunden, und es funktioniert.

uint32_t conv_hex2dez (uint16_t hex)
{
    uint16_t div=10000;
    uint32_t add=0x10000;
    uint32_t dez=0;
    while(hex)
    {
        dez+=(add*(hex/div));
        hex-=(div*(hex/div));
        div/=10;
        add/=0x10;
    }
    return dez;
}

Vielen Dank,
Yve
#1712746
Lesenswert?
• ▲
▼
Yvonne J. schrieb:
> Ich habe meinen Fehler nun gefunden, und es funktioniert.

Na dann schau einmal ins Listing und laß ihn im Simulator laufen.
Du wirst sehen, daß er deutlich größeren Code erzeugt und deutlich 
länger braucht, als die abgelehnten Standardlösungen.

Warum willst Du unbedingt um Längen schlechteren Code benutzen, als den 
der Standard-Library des Compilers?


Ist Dir der Flash zu groß, nimm nen kleineren MC.
Ist er Dir zu schnell, schalte den CPU-Takt runter.


Peter

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.