Hallo, nun ich wollte 9 * 8650 rechen. Das ganze wie folgt: volatile uint32_t g_int32_tmp; g_int32_tmp = 9 * 8560; heraus kommt immer 11504 statt 77040 Sieht man sich die Hexwerte an sieht man 11504 als 0x12FC und 77040 als 0x12FC0 Ich kann mir da kein Reim drauf machen :-( Wie schreibt man es das auch wirklich das herauskommt was man vom Taschenrechner kennt? ;-) Gruß Tobi
Der Compiler rechnet nur mit 16bit, daher gibt es einen Überlauf. Du musst auf long casten: g_int32_tmp = (uint32_t)9 * 8560;
Dank Euch! Da wäre ichnicht drauf gekommen, nun hat man auch das einmal gesehen, nun muß man sich das nur merken und wenn es wieder mal nicht will, wissen was zu tun ist! ;-D MfG Tobi...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.