Autor Thema: Zahl in String umwandeln  (Gelesen 3822 mal)

zacK

  • Beiträge: 216
    • Profil anzeigen
    • http://www.domae.ch
Gespeichert
« am: 17. March 2005, 16:48 »
moinz all!

Um Zahlen auf den Bildschirm auszugeben muss man die zahl ja in ein string umwandeln. Nun wie wird das realisiert... hat das schon jemand gemacht?

da habe ich null ahnung... :(

thx for help

JG

  • Beiträge: 189
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 17. March 2005, 18:26 »
Warum in einen String umwandeln?
Übergib dach z.b. 5 an eine Funktion, und die schreibt dann die 5 in den Videospeicher? Oder geht das nicht?

elfish_rider

  • Beiträge: 293
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 17. March 2005, 19:23 »
Aber ebendiese Funktion muss die fünf immer noch umwandeln.

JG

  • Beiträge: 189
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 17. March 2005, 19:25 »
Achso, kann man die nicht einfach so in den Speicher schreiben?!?!

elfish_rider

  • Beiträge: 293
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 17. March 2005, 19:36 »
Du musst zwischen ASCII-Code und reinen Integerwert (Ganzzahl) unterscheiden.

Der Prozessor rechnet mit normalen Zahlen und speichert diese auch so ab. Wenn nun Text in den Grafikspeicher geschrieben wird, wird pro Buchstabe (oder auch Ziffer) 1 Byte gebraucht, das ist der ASCII/ANSI - Code.

Der ASCII-Code von Ziffern beträgt genau 30h mehr als die eigentliche Ziffer:

0 30h
1 31h
2 32h
3 33h
...
9 39h

ausserdem muss beim umwandeln beachtet werden, dass der Integer zuerst in die einzelnen Ziffern umgewandelt werden muss

Bsp. Dezimalsystem:



Zahl 395

395 / 100 = 3 -> 3 schreiben
95 / 10 = 9    -> 9 schreiben
5                   -> 5 schreiben

Hex:

395 / 256 = 1  ; 256 = 16^2
139 / 16   = 8 ; 16 = 16^1
11 -> B

-> 18B


Hoffentlich ist so das Konzept einigermassen klar.

JG

  • Beiträge: 189
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 17. March 2005, 19:47 »
Oh, ja ich dachte die Ziffer kann man einfach so dorthin schreiben.

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #6 am: 18. March 2005, 07:33 »
gabs net mal in ASM ne funktion um nen normalen int in BCD zu kodieren? damit würde es besser gehen. ich werd mal schauen...
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 18. March 2005, 10:56 »
BCD sollte man nicht mehr verwenden, da es ab dem Athlon64 nur noch emuliert wird :D Und im 64-Bit-Modus de facto nicht mehr vorhanden ist.
BCD-Arithmetik bleibt bei den 1964er IBM-Rechenmaschinen *gg*

Svenska

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #8 am: 18. March 2005, 12:41 »
naja, egal, aber man kann es gut verwenden für soetwas ;)
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

 

Einloggen