Gast
#2618224
Hallo, ich habe ein Problem mit einer Rechnung. Ich möchte eine Tabelle mit konstanten Faktoren am Anfang des Programms errechnen lassen. ssTabelle wird anfangs mit Werten befüllt (hier 4 Stück als Beispiel), die das Programm dann später ausrechnen soll. Die Array hierfür ist als int16_t definiert, da die Anfangsbefüllung und auch die Werte NACH erfolgter Rechnung in ein int16_t passen. Jetzt kommt es aber bei der Rechnung selbst zu einem Überlauf von 16-bit, da die Werte zunächst mit 4000 multipliziert werden (damit größer als 16-bit) und im Anschluss durch (n*3) geteilt werden. Wird durch n*3 geteilt, passen die Zahlen wieder 16-bit. Allerdings funktioniert das Ganze leider nicht. Es kommt nicht die Zahl raus, die rauskommen soll (gebe sie mir auf dem Display aus).
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
Hat jemand einen Lösungsvorschlag? Wenn ich ssTabelle als int32_t wähle, funktioniert die Rechnung. Wollte aber nicht den Speicherplatz vergeuden. Danke.