Gast
#3495788
Hallo, ich habe einen Fehler mit dem cast gemacht. Würde aber gerne etwas erfahren, was ich da genau gemacht habe. Ich habe eine Variable signed 16-bit: int16_t s16fooword In einer Rechnung habe ich aber folgendes gemacht: s16fooword = (int32_t) (F_CPU/60)*u16rpm*s16multiplier; wobei rmp ein uint16_t ist und s16multiplier int16_t (und daher auch negativ) Der Wert der gecasteten Zahl hat gestimmt, nur war das Vorzeichen weg bzw. die Zahl war positiv, obwohl s16multiplier negativ ist. Was genau ist da passiert? Richtig wollte ich eigentlich so casten: s16fooword = (int16_t) ((F_CPU/60)*u16rpm*s16multiplier; Danke.