Forum: Mikrocontroller und Digitale Elektronik Integer to BCD in C


von Thomas Jaeger (Gast)


Lesenswert?

Hallo,
hat jemand von euch schon mal eine Funktion geschrieben,
die ein Integer (idealerweise 16bit) in BCD-Stellen umrechnet.

Thomas

von Gerhard Gunzelmann (Gast)


Lesenswert?

Hi

wie meinst den das ? und wozu ?

mit sprintf() oder itoa() in einen ASCII String oder soll dann in einer
long-Variablen wieder eine Zahl stehen ?

Gerhard

von Michael (Gast)


Lesenswert?

#define MAX_STELLEN 5

char bcd_stellen[MAX_STELLEN];

void hex2bcd(unsigned short wert)  // 16bit ohne Vorzeichen
{
char i = MAX_STELLEN;
  while(i--) {
    bcd_stellen[i] = wert % 10;
    wert /= 10;
  }
}

Prinzipiell geht das so; ich habe es nicht weiter getestet.

von Thomas Jaeger (Gast)


Lesenswert?

Hallo Michael,
die Antwort kam ja wie aus der Pistole geschossen.
Vielen Dank, genau das brauche ich.

von Florian Hrubesch (Gast)


Lesenswert?

naja so ganz geht das nicht was du da machst.
Du musst zu erst durch 10000 dann 1000 usw teilen.
oder irre ich mich da?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.