Forum: Mikrocontroller und Digitale Elektronik Einlesen von signed bzw. unsigned 16bit int


von HMC1980 (Gast)


Lesenswert?

Hallo,

ich habe folgende Verständnisfrage ->

Zur Situation ich bekomme vom Controller über den I2C Bus ein Word mit 
z.B. 0xFEE4 wie kann ich jetzt diesen Wert in eine Variable als signed 
einlesen.

Denn es ist ja ein Unterschied ob ich es als signed oder unsigned 
einlesen.

0xFEE4  = 65252 (unsigned)
0xFEE4 = -284 (signed)

int16_t Akkustrom;

Akkustrom = 0xFEE4; -> ist das so korrekt?


kann ich dann die Variable Akkustrom einfach vergleichen z.B. so?

if(Akkustrom <= -100){
....
...
}

von Ben W. (ben_w)


Lesenswert?

japp,
oder welche befürchtungen hast du?

von HMC1980 (Gast)


Lesenswert?

Ben W. schrieb:
> japp,
> oder welche befürchtungen hast du?

wie kommt das minus Zustande ist es weil int16_t von −32768 ⋯ 32767 
geht

und uint16_t  von 0⋯ 65535?

wie sieht es denn in der Bitebenen aus?

von Svenska (Gast)


Lesenswert?

Wenn das oberste Bit 1 ist, dann ist die Zahl entweder negativ (signed) 
oder größer als MAX/2 (positiv). Was da nun stimmt, hängt von der 
Interpretation ab.

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.