Hallo, ich habe eine Frage: Wenn ich im Speicher eine long-Zahl habe, zb 123456 und ich will diese in einen String konvertieren, wie mache ich das? Im Voraus danke für eine Antwort!!
Das hättest Du auch gleich schreiben können. Das Grundkonzept ist immer dasselbe, ob nun ein 8-Bit-Prozessor oder ein 32-Bit-Prozessor verwendet wird, daher solltest Du das Funktionsprinzip hier im Forum beschrieben finden - ist ja nicht so, daß die Frage das erste Mal gestellt würde. Achja, und was bitte hat das mit "PC-Programmierung" zu tun? Nichts, also -> verschoben.
gast wrote: > Nein, ich muss die Funktion in Assembler für ARM7 realisieren! > Danke! Die Zahl sei 3587 Wieviele Tausender sind in 3587? 3587 - 1000 = 2587 1 mal 2587 - 1000 = 1587 2 mal 1587 - 1000 = 587 3 mal 587 - 1000 = -413 negativ, ergo sind 3 Tausender enthalten Wiviele Hunderter sind in 587 587 - 100 = 487 1 mal 487 - 100 = 387 2 mal 387 - 100 = 287 3 mal 287 - 100 = 187 4 mal 187 - 100 = 87 5 mal 87 - 100 = -13 negativ, ergo sind 5 Hunderter enthalten Wieviele Zehner 87 - 10 = 77 1 mal 77 - 10 = 67 2 mal 67 - 10 = 57 3 mal ... 27 - 10 = 17 7 mal 17 - 10 = 7 8 mal 7 - 10 = -3 negativ, ergo sind 8 Zehner Wieviele Einer sind in 7 Einfach, das sind 7 Wie wissen also, dass in 3587 enthalten sind 3 Tausender, 5 Hunderter, 8 Zeher und 7 Einer. Das sollte doch jetzt kein Problem mehr sein, einen String mit den entsprechenden ASCII Zeichen zu füllen.
@Rufus: "itoa oder (s)printf" long zu String und dann itoa? Nee, ist klar. ltoa ist Dein Freund...
Gibt es einen vernünftigen Grund sowas in Assembler neu zu programmieren ? Der einzge Grund der mir einfällt ist, das ein Prof. an der Uni, Fh, oder ähnliches das als Übungsaufgabe stellt. Und dan lös es selbst, wenn du eine Lösung abschreibst lernst du es nicht. Geht spätestens bei der Klausur in die sch.....
>Gibt es einen vernünftigen Grund sowas in Assembler neu zu >programmieren ? Nun, der GNUARM z.B. kennt kein itoa. Und wenn eine Implementierung in C zu langsam ist... Den Ansatz von Herrn Buchegger habe ich mal auf einem AVR umgesetzt. Das ist deutlich schneller als das übliche Verfahren mit div/modulo.
/Und wenn eine Implementierung in C zu langsam ist.../ Die paar µS unterschied zwischen der C und der Assembler Implementierung auf einem ARM 7 wirst du nie merken. Wenn dein µC deshalb zu langsam ist, dann hast du etwas grundlegendes falsch gemacht. ==> Falscher µC ausgewählt Benötigte und Vorhanden Resourcen passen nicht zusammen Das kommt von erst mal Anfangen, ohne zu wissen was man macht.
> "itoa oder (s)printf" > > long zu String und dann itoa? Nee, ist klar. > ltoa ist Dein Freund... Sorry, da war ich etwas unaufmerksam. Auf den meisten Systemen, auf denen ich unterwegs bin ist sizeof (int) == sizeof (long).
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.