Hallo! Ich programmiere mit CodeVisionAVR. leider beinhaltet die Software nur die Umwandelfunktion int to ascii. Gibt es im Forum jemand der eine Funktion geschriebn hat, wo man die int Zahl zu einer hex Zahl wandeln kann?
itoa ist aber schon ganz richtig. Nimm Radix 16 und dann passt das schon char * itoa (int __val, char *__s, int __radix)
Hi Mike! Mit CodeVsionAVR funktioniert dies nicht. ------------------------ int dings = 15; char array [5]; itoa (dings,array,16); ------------------------
"Mit CodeVsionAVR funktioniert dies nicht." Die obligatorische Frage: Was heisst "funktioniert nicht"? Wird nichts in das Array geschrieben, weigert sich der Compiler, den Code zu übersetzen, explodiert der Controller?
evtl will er einen expliziten cast haben itoa (dings,(char*)array,16);
Hi wenn array als "char array [5];" deklariert ist dann ist "array" ein "char *" Matthias
ich weiss, aber vc++ meckert es trotzdem an und gcc falss ich mich recht erinnere auch
"...explodiert der Controller?" Das wirds wohl sein. Meine Glaskugel ist ja auch grad zur Reparatur. Peter
Hi, in CodeVision ist itoa nur: void itoa(int n, char *str) Also nichts mit radix. Wenn Du keine eigene Umwandlungsfunktion schreiben willst, geht es höchstens mit sprintf... Gruss, Ingo.
char *res; (in dem fall mindestens 2 zeichen platz benötigt) char number; static char ch_hex[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; res[1] = ch_hex[ number & 0x0F ]; res[0] = ch_hex[ (number >> 4) &0x0F ] ;
Hallo Tobi! jetzt bin völlig verwirrt. Wie kann ich deine Code in ein beispiel umsetzen?
mach res als char res[3]; und am ende noch ein res[2] = 0; funktionier mit zahlen bis 255, in res stehts dann drin
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.