Hallo, ich würde gerne wissen wie Multiplikationen/Divisionen über mehrere Register funktionieren. Mein μC besitzt nur eine 8-Bit Genauigkeit, ich würde aber gerne Zahlen miteinander verrechnen, die mehr als 8-Bit Speicherplatz erfordern. Additionen/Subtraktionen hab ich schon hinbekommen, aber wie mach ich das bei Multiplikationen/Divisionen?
Mach' mal von Hand eine Multiplikation mehrstelliger Zahlen und schreibe die Zwischenergebnisse (auch die, die man von Hand üblicherweise in einer Zeile durch Überträge auf die nächste Stelle zusammenfasst) untereinander. So funktioniert's auch in der 8-Bit-CPU, nur dass die einzelnen Stellen nicht dezimal sind, sondern bei 8 Bit ein hexadezimales Byte sind. Bei der Division geht es genau analog zur Division-Von-Hand-Vorgehensweise (nur dass die einzelnen Stellen binär sind, falls die CPU keine Hardwaredivision kann),
Wie macht man's schriftlich ? Das sollte noch praesent sein von der Schule. Genauso. Nur dass eine Stelle einen Faktor zwei ist, anstelle eines Faktor 10.
Hi Für AVRs: http://www.atmel.com/dyn/resources/prod_documents/doc0936.pdf http://www.atmel.com/dyn/resources/prod_documents/doc1631.pdf MfG Spess
Danke für eure Antworten. Manchmal sieht man den Wald vor lauter Bäumen nicht. Ich hab leider keinen AVR, aber da ich das Prinzip jetzt verstanden hab nach dem ich vorgehen muss, sollte es kein Problem sein das in Code umzusetzen.
Hallo, am einfachsten ist es natürlich, die Multiplikation in C zu programmieren - die Library-Routinen für die Rechenarten sind i.a. so weit optimiert, dass man sie selber auch nicht besser hinkriegt. Besonders bei Floating Variablen. Gruss Reinhard
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.