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
sscanf (bzw. gleich strtoul) in einen uint32_t, dann per typecast in einen int32_t umwandeln.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.