Forum: Mikrocontroller und Digitale Elektronik Probleme mit Multiplikation


von Siegfried S. (dieleena)


Lesenswert?

Hallo,
MPLAP 8.14 und C18
Habe Probleme mit der Multiplikation.

Wenn ich
BusSpi_03  = (16 * 8) rechne, ist das Ergebnis " FF80 "
richtig wäre  0080

habe die Variable mit unsigned int BusSpi_03 sowie int BusSpi_03 
probiert.

Gruß Siegfried

von (prx) A. K. (prx)


Lesenswert?

Vollständiges Beispiel bitte.

von Siegfried S. (dieleena)


Lesenswert?

Hallo,

so
unsigned int BusSpi_03

BusSpi_03  = (16 * 8)

als auch
unsigned int BusSpi_03

BusSpi_03  = (16 * 8)


Gruß Siegfried

von holger (Gast)


Lesenswert?

Das kenn ich irgendwoher das das Highbyte auf 0xFF gesetzt ist ;)
Wie alt ist die Compilerversion?

von Siegfried S. (dieleena)


Lesenswert?

Hei,
MPLAP 8.14
C18 3.21
Gruß Siegfried

von (prx) A. K. (prx)


Lesenswert?

Gibt es da eine Compileroption die sizeof(int)=1 bewirkt? Dann stimmt es 
nämlich.

Einen verwandte Option jedenfalls gibt es, die Rechnungen mit Bytes 
nicht automatisch auf "int" erweitert. Wenn dann noch 16 und 8 als 
"char" interpretiert werden, somit auch das Ergebnis, dann passt alles.

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.