Hallo Leute,
ich habe hier eine Rechnung, die aufgrund eines Zahlenüberlaufs nicht richtig gerechnet wird. Aber ich kann mir einfach nicht vorstellen, wo dieser Zahlenüberlauf sein soll. Kann vielleicht jemand helfen?

((int32_t)((150*150)+(130*130)-(151*151)))*1024/(2*130*150)

Ich habe extra viel Klammern gesetzt (auch unnötige), um Missverständnisse auszuschließen.

selbst in dieser Form wird ein Integer overflow vom Compiler angezeigt (aber jetzt nur 1 mal, statt 2):
((int32_t)((uint16_t)(150*150)+(uint16_t)(130*130)-(uint16_t)(151*151)))*1024/(uint16_t)(2*130*150)

Achja, ich führ die Rechnung auf einem 8bit AVR aus. Anstatt der Zahlen stehen eigentlich Variablen.

Danke im Voraus, Yaro