zahl in string

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 29 11 2024  00:38:53      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte


Autor
zahl in string

    







BID = 63032

schaegi

Gerade angekommen


Beiträge: 19
ICQ Status  
 

  


Hallo, ich habe noch einmal eine Frage, und zwar, wie wandle ich eine Zahl in einen String um:

Bsp:
unsigned char zahl = 1234;

diese zahl sollte dann aber so aussehen:

char string[]={'1','2','3','4'};


Ich hoffe ihr seit mitgekommen.

BID = 63041

ERDI-Soft

Stammposter



Beiträge: 200
Wohnort: Offenburg
Zur Homepage von ERDI-Soft ICQ Status  

 

  

Kann dir kein Beispielprogramm in C geben aber zumindest mal den Lösungsweg aufzeigen.

Wenn du weißt, wieviel Stellen du hast, ist es relativ einfach. In deinem Fall subtrahierst du 1000 von deiner Zahl, danach machst du nen Test, ob kein Fehler pasiert ist (also die Zahl nicht mehr durch tausend teilbar ist), erhöhst dann nen Zähler und teilst wieder durch tausend. Sobald der Überlauf (Fehler) stattfindet, hast du im Zähler die Menge der tausender.
Das ganze machst du auch mit 100 und mit 10. Die letzte Zahl, die stehenbleibt, sind dann deine Einer.

Etwa so:

1234 - 1000 = 234

Test, ob Carry gesetzt (oder anderes Bit, je nach Proz.)
nicht gesetzt: Temp1000 + 1

234 - 1000 = Fehler

Test, ob Carry gesetzt (oder anderes Bit, je nach Proz.)
gesetzt, nächster Schritt:

234 - 100 = 134

Test, ob Carry gesetzt (oder anderes Bit, je nach Proz.)
nicht gesetzt, Temp100 + 1

usw. usf.


Ich weiß jetzt nicht, für was du das einsetzen willst (welcher µController, welche Sprache), aber prinzipiell geht es so. Vielleicht hat aber jemand anderer noch ne elegantere Lösung?

So mache ich auf jeden Fall meine Umwandlung von binär nach decimal, um die Uhrzeit aus nem Register auf dem Display darstellen zu können. (Spart ein paar Register.)


Gruß, ERDI - Soft.


_________________
Wie immer gilt: Erst googeln, dann fragen!

(Für ICQ bitte erst Anfrage per PM, da alles andere nicht angenommen wird.)

BID = 63051

Gurney

Gesprächig

Beiträge: 193
Wohnort: Stuttgart
Zur Homepage von Gurney

Ich weiß nicht, ob das auf allen µC so funktioniert, aber wenn man in C eine Division zweier Integers durchführt und das Ergebnis als Integer auffasst, werden die Nachkommastellen einfach abgeschnitten. Also in etwa so:

Code :

int zahl = 1024;

int tausender = zahl/1000;
zahl-=tausender*1000; // müssen natürlich abgezogen werden...
int hunderter = zahl/100;
zahl-=hunderter*100;
usw...


Das ganze kann man natürlich auch noch in eine Schleife packen usw. Ob das allerdings in Assembler auch so gemacht werden kann würd ich auch gern mal wissen Außerdem dürfte es wegen der Divisionen etwas rechenintensiver sein als Erdis Lösung, aber so ginge es jedenfalls auch.
Tschau
Gurney

[ Diese Nachricht wurde geändert von: Gurney am  5 Apr 2004 16:01 ]


Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 19 Beiträge im Durchschnitt pro Tag       heute wurden bisher 0 Beiträge verfasst
© x sparkkelsputz        Besucher : 182421061   Heute : 100    Gestern : 5459    Online : 502        29.11.2024    0:38
2 Besucher in den letzten 60 Sekunden        alle 30.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0468688011169