Forum: Mikrocontroller und Digitale Elektronik ASCII Zeichen zu Hex-Zahlen konvertieren


von Markus (Gast)


Lesenswert?

Hallo

Ich programmiere unter C und habe folgendes Problem:
Ich habe einen ASCII String (Char Array), das z.B. so aussieht:

"54-AF-43-C4"

Nun will ich die Zahlenblöcke 54 AF 43 und C4 in hexadezimale Werte 
umwandeln.
Mit Dezimalzahlen ist das einfach, da eignet sich atoi() super, aber wie 
sieht das mit Hex aus? Ich will nicht unbedingt das Rad neu erfinden, 
drum suche ich nach fertigen Libs, allerdings fand ich nichts 
brauchbares bisher. Darum wende ich mich an euch.

von sumynona (Gast)


Lesenswert?

54 AF 43 und C4 sind doch schon hexadezimale werte kopfkratz

von sumynona (Gast)


Lesenswert?

du meinst sicher, ob man einen string der bspw. "AF\0" enthält in den 
char wert 0xAF konvertieren kann... dazu ließe sich sicher leicht ne 
funktion ergoogeln oder selber schreiben. wenn du noch paar stunden zeit 
hast guck ich heut abend mal ob ich meine alte version davon finde

von MeinerEiner (Gast)


Lesenswert?

Ging bzw. geht doch mit sscanf.

von P. S. (Gast)


Lesenswert?

Markus wrote:

> Mit Dezimalzahlen ist das einfach, da eignet sich atoi() super, aber wie
> sieht das mit Hex aus? Ich will nicht unbedingt das Rad neu erfinden,
> drum suche ich nach fertigen Libs, allerdings fand ich nichts
> brauchbares bisher. Darum wende ich mich an euch.

Das ist in 20 Minuten gemacht, wenn man es kann. Wenn man es nicht kann, 
sollte man es unbedingt machen - eine ideale Uebungsaufgabe.

von ... (Gast)


Lesenswert?

Wozu der Aufwand, dafür gibts doch strtol()/strtoul(). Einfach als 
letzten Parameter 16 angeben.

CU

von Markus (Gast)


Lesenswert?

Hallo

Vielen Dank!
Mit strtol funktioniert das ganze super! Die Funktion kannte ich bisher 
noch nicht, löste mein Problem aber auf Anhieb :)

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.