Forum: Mikrocontroller und Digitale Elektronik 16 Bit Zahl ausgeben


von user227 (Gast)


Lesenswert?

Hallo,
habe folgendes Problem bei meinem 80c535 Projekt und weiß nicht mehr 
weiter. Habe eine 16-Bit Zahl, die auf 2 Adressen verteilt ist. Diese 16 
Bit zahl soll nun als ASCII ausgegeben werden. Würde es sich lediglich 
um eine 8-Bit Zahl handel könnte ich durch 100 dividieren, abspeicher, 
dann durch 10 dividieren usw.
Allerdings ist eine Division von einer 16-Zahl nicht möglich. Hat hierzu 
jemand einen Lösungsvorschlag?

Vielen Dank

von Jochen M. (taschenbuch)


Lesenswert?

227,

Du musste es ja nicht zwanghaft mit Divisionen machen, sondern es geht 
auch mit schrittweisem subtrahieren von 10000 bis es nicht mehr geht, 
dann mit 1000 bis es nicht mehr geht, dann mit 100, usw...
Die Anzahl der möglichen Subtraktionen gibt dann ohne weiteren Aufwand 
bereits den Wert des Digits im ASCII-String an. (48 addieren, um von der 
Binarzähl auf den ASCII-Wert zu kommen natürlich)

Ist etwas ungünstiger hinsichtlich der Takte, aber dafür sehr einfach 
verständlich.

Jochen Müller

von Marvin M. (Gast)


Lesenswert?

Wer behauptet denn, eine 16-Bit Division ginge nicht?

Google:
16-bit division

Erster Treffer:
http://www-user.tu-chemnitz.de/~heha/Mikrocontroller/Division.htm

von R. W. (quakeman)


Lesenswert?

Es wäre dabei schon interessant zu wissen, ob du den Code in Assembler 
oder C haben willst. Denn in C kannst du ohne weiteres eine 16Bit 
Division machen und der Compiler baut das dann entsprechend um.

Schade das du keinen 80C517A benutzt, denn dieser hat schon eine 16Bit 
Multiplikations und Divisionseinheit eingebaut. ;)

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
Noch kein Account? Hier anmelden.