Hallo Leute, ich hab ein ganz profanes Problem mit dem SDCC. Ich habe bis jetzt Assembler und manchmal BASCOM zur Programmierung von 8051er benutzt und bin was C angeht absoluter newbee. Obwohl ich bereits vielgesucht und gelesen habe, konnte ich für folgendes Problem keine Lösung finden. Ich hoffe hier kann mir jemand helfen! Ich möchte eine Integerzahl (oder auch unsigned char) in einen 3 Stelligen String umwandeln. Wenn ich folgenden Code kompiliere, macht die Division immer -1 if (zahl<100) string{0]=48; else temp = zahl/100; //temp soll der Ganzzahligen Teil des Ergebnisses sein zahl = zahl-temp*100; //damit soll der "hunderter anteil" subtrahiert werden string[0] = 48+temp; ...... Die 48 ist der Lcd Character Code für "0". Ist die "zahl" z.B. 222 sollte in temp eine zwei stehen und nach der Subtraktion sollte in "zahl" 22 stehen. Aber in temp steht nach der Division offensichtlich -1, da in string[0] anschliessend 47 steht obwohl dort eigentlich 50 stehen sollte. Was mache ich falsch ? Wo ist der Denkfehler? Danke für Eure Hilfe Gruss Uli
Bibliotheksfunktion (stdlib.h) verwenden?
1 | void uitoa(unsigned int value, char* string, int radix) |
oder ist das oversized?
Hallo zusammen, die Variablen sind natürlich vorher initialisiert worden: unsigned char zahl=0; unsigned char temp=0; stdlib.h habe ich noch nicht versucht, werde es aber mal probieren !! Gruss Uli
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.