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!!
Gast
#1264289
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!
Gast
#1264299
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
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.