Hallo allerseits,
ich muss in einem ATMega168 mit recht großen Zahlen rechnen.
Irgendwie scheint das aber nicht richtig zu funktionieren, denn entweder
kann er diese Zahlen nicht richtig berechnen oder die Berechnung
erfordert zu viele Rechenzyklen. Jedenfalls kommen am Ende nicht
nachvollziehbare Ergebnisse heraus.
Pseudocode der Rechnung:
1 | uint32_t erg = (uint16_t "2000" * 5003UL) / (10 * uint16_t "50000")
|
Die Zahlen in Anführungsstriche stehen für beispielhafte Werte, die die
Variablen an der Stelle annehmen können. Zusätzlich habe ich den Typ der
jeweiligen Variable angegeben. Die Werte 5003UL und 10 sind in der
Gleichung konstant.
Insgesamt komme ich also auf Berechnungen der Größenordnung 10.000.000 /
500.000
Meine Frage ist nun,
- ob die Wahl der Datentypen korrekt ist?
- wie lange eine Division solch großer Zahlen schätzungsweise dauert?
Gruß