Forum: Compiler & IDEs convert char in int


von Frank (Gast)


Lesenswert?

hallo Leute,
ich versuche ein Char Zahl in uint_16 zu konvertieren.
ZB char zahl1[4]="7FF", uint16_t zahl2;
zahl2=atoi(zahl1);
ich bekomme zahl2=7;
Weiss jemanden wo das Problem liegt?
Danke

von Andreas K. (a-k)


Lesenswert?

Wenn du einen Hex-String in eine Zahl umwandeln willst, such mal nach 
strotul(). atoi() wandelt dezimal und stört sich folglich am "F".

von Frank (Gast)


Lesenswert?

ich verstehe nicht, wie benutze ich ich die beide Funktionen?

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Du brauchst nicht beide Funktionen.

Nur strtoul brauchst du. Und wie man strtoul benutzt, steht im 
Handbuch deiner C-Toolchain oder irgendwo in der Warmen Weiten Wildnis, 
wo es darauf harrt von Google gefunden zu werden.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Aufruf z.B.

#include <stdlib.h>

char zahl1[4]="7FF";
uint16_t zahl2;

zahl2 = (uint16_t) strtoul(zahl1, (void *) 0, 16);


Die Kollegen von strtoul für andere Typen als unsigned long int heissen 
strtod() und strtol()

von Frank (Gast)


Lesenswert?

ich danke Dir, es klappt wunderbar

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.