Forum: Compiler & IDEs 2-er Komplement aus String erzeugen


von Daniel Bürgin (Gast)


Lesenswert?

Hallo zusammen

Ich bekomme von einem Sensor über die RS232 Schnittstelle eines
ATmega128 den String "FFFFFFFA". Laut dem Hersteller bedeutet dies
-7 als 2-er Komplement.

Hat jemand eine Idee, wie ich aus diesem String elegant ein
"signed int" erzeugen kann (in C) ?
Mit sscanf bekomme ich nur eine riesige Zahl, da der sscanf natürlich
nicht weiss, dass dies eine 2-er Komplementzahl ist.

Bin für jeden Tip dankbar

Daniel Bürgin

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

sscanf (bzw. gleich strtoul) in einen uint32_t, dann per typecast
in einen int32_t umwandeln.

von Daniel Bürgin (Gast)


Lesenswert?

Besten Dank

Mein Fehler war der sscanf, jetzt klappts:

uint8_t tbuff[]="FFFFFFFA";
int32_t temp;

temp = (int32_t) (strtoul(tbuff,NULL,16));

Daniel

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.