Diese Funktion konvertiert einen Hex-String (ohne "0x"-Prefix) in eine Integer-Zahl. Die maximale Länge des Strings darf 8 Zeichen nicht überschreiten, da eine uint32 nur 8 Nibbles aufnehmen kann. Ist der String länger, wird 0 zurückgegeben.
Parameter:#include <string.h> uint32_t myHex2Int(char *str) { uint8_t len = strlen(str); uint8_t cnt; uint8_t c; uint32_t retval = 0; if (len > 8) // uint32 can only contain 8 hex-chars { return 0; } for (cnt = 0; cnt < len ; cnt++) { c = (uint8_t)str[cnt]; if ((c >= 'a') && (c <= 'z')) { // make upper case c -= 0x20; } if ((c >= '0') && (c <= '9')) { retval += c - '0'; } else if ((c >= 'A') && (c <= 'F')) { retval += (c - 'A') + 10; } else { return 0; } if (len - cnt > 1) { retval <<= 4; } } return retval; }