Guten Tag! Ich sitze jetzt schon längere Zeit an einem für euch sicherlich kleinem Problem!! Ich programmiere mit dem SAB 80C517A. In dem µController sind Rechenoperationen implementiert, zum Beispiel 32/16 Bit und 16/16 Bit. Ich muss eine 16/16Bit Operation durchführen. Der µC gibt dann in 2 Registern den Wert und den Rest aus. Bei mir ist jetzt der Dividend kleiner als der Divisor, ich erhalte also einen Dezimalwert zwischen 0 und 1. Der µC gibt also einen Rest von Null aus! Ich würde jetzt den 16Bit Dividend in einen 32 Bit Wert umwandeln, dann bekäme ich einen Integerwert ausgegeben, nur nicht mehr als Rest, sondern als Ganzzahlwert. Ich grübel schon ne ganze Weile, vielleicht kann hier mir ja jemand helfen Danke!!
Bei x/y mit x < y sollte aber ein Rest übrig bleiben. Den brauchste nur noch richtig zu interpretieren.
Na ich hab mir mal ein Beispiel gemacht: zB: a=44560 b=50000 a/b = 0,8912 Der µC Speicher dann ab: Ergebnis:0, Rest:0 Der Speichert ja nur ganze zahlen als Rest ab, das geht ja nur wenn b>a!
Dann ist deine Divisionsroutine schlicht und einfach falsch programmiert. Bei Ganzzahlrechnung geht das so: a=44560 b=50000 a / b = Ergebnis: 0, Rest: 44560.
Ja genau genau, du hast natürlich Recht! Ich wollte das jetzt umwandeln in einen 32Bit Wert, damit ich als Rest den eigentlichen Dezimalwert erhalte: also anstatt 44560/50000=0,8912 möchte ich x/50000 = 8912
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.