Forum: Mikrocontroller und Digitale Elektronik Datentypen: Bitte um Hilfe - Bereichsüberschreitung?


von Helmut (Gast)


Lesenswert?

Hallo zusammen!

Ich bräuchte mal eure Hilfe.

Ich verrechne hier gerade verschiedene Zahlen miteinander, aber 
irgendwann wird der Bereich zu groß, so scheint es.

Es geht mir mehr um das generelle Verständnis:
1
int32_t wert1 = 50000;
2
int32_t wert2 = 100000;
3
4
int_64 ergebnis;
5
6
ergebnis = (wert1 * wert2);

Das funktioniert leider nicht, sondern muss ich:
1
ergebnis = ((int64_t) wert1 * (int64_t) wert_2));

Rechnet der Compiler zuerst "wert1" und "wert2" in 32 bit zusammen und 
schiebt das dann das Ergebnis?

von Volker Z. (vza)


Lesenswert?

Helmut schrieb:
>
> Rechnet der Compiler zuerst "wert1" und "wert2" in 32 bit zusammen und
> schiebt das dann das Ergebnis?

Ja
1
ergebnis = (int64_t) wert1 *  wert_2;

das reicht auch.

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
Noch kein Account? Hier anmelden.