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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren