www.mikrocontroller.net

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


Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: sumynona (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
54 AF 43 und C4 sind doch schon hexadezimale werte kopfkratz

Autor: sumynona (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: MeinerEiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ging bzw. geht doch mit sscanf.

Autor: P. S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: ... (Gast)
Datum:

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

CU

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.