8 short int check_int(
const char *s,
int len, uint8_t base)
10 if(s == NULL)
return 0;
11 char digits[] =
"0123456789aAbBcCdDeEfF";
12 if(base == 16) base += 6;
14 for(i = 0; i < len; i++)
16 if(
_len(digits, s[i]) <= base)
24 unsigned long long char_to_int(
const char *s,
int i, uint8_t base)
33 unsigned long long n = 0;
34 unsigned long long b = 1;
36 for(i -= 1; i >= 0; i--)
41 case '1': n += b;
break;
42 case '2': n += 2 * b;
break;
43 case '3': n += 3 * b;
break;
44 case '4': n += 4 * b;
break;
45 case '5': n += 5 * b;
break;
46 case '6': n += 6 * b;
break;
47 case '7': n += 7 * b;
break;
48 case '8': n += 8 * b;
break;
49 case '9': n += 9 * b;
break;
51 case 'A': n += 10 * b;
break;
53 case 'B': n += 11 * b;
break;
55 case 'C': n += 12 * b;
break;
57 case 'D': n += 13 * b;
break;
59 case 'E': n += 14 * b;
break;
61 case 'F': n += 15 * b;
break;
int _len(const char *s, char m)
#define str_len(s)
Shorthand for counting '\0' terminating strings. See _len for more info.
unsigned long long char_to_int(const char *s, int i, uint8_t base)
short int check_int(const char *s, int len, uint8_t base)