hex (aus char) nach int konvertieren
-
moin moin...
ich muß, um eine checksumme zu bilden hex werte, die als char vorliegen als int umwandeln und diese dann berechnen
<< weiß aber nicht wie
hat jemand von euch eine idee??
aja, ein teil der hexwerte ist über defines als escapeswquenz definiert
(z.b. so#define REQ "\x52"
)
die checksumme soll so aussehen:
0x52 + 0x00 + 0x03 = 0x55schonmal danke für eure hilfe
-
inline uint16_t htoi( char *hstr ) { return (uint16_t)strtol( hstr, (char **)NULL, 16 ); }
-
hmmm, was für ein datentyp ist denn uint16_t??? dev-c++ is ordentlich am meckern
er sagt "'uint16_t undeclared"
-
erschieß mich ruhig !!!
> unsigned int <<
-
funktionier ganz toll, nur leider nicht mit den escapesecuenzen
also 72h wandelt er prima in 114d um, aber bei "\x72" erhalte ich 0
-
'\xhh' sind zeichenkonstanten die du nicht explizit umwandeln musst.
'\x02' + 5 = 7
in deinen beispiel definierst du einen str.. klar das die funktion fehlschlägt da '\' und 'x' keine hdigits sind.
-
ich hab es jetzt etwas abgeändert, dann geht es auch mit escapesequenzen!
uint16_t htoi( char *hstr ) { return (uint16_t)hstr[0]; }
naja, bestimmt eine quick & dirty variante, aber es geht