64 lines
927 B
C
64 lines
927 B
C
#ifndef _SYSUTILS_UTILS_H
|
|
|
|
// Number parsing
|
|
static inline int parse_num_dig(char dig)
|
|
{
|
|
if((dig >= '0') && (dig <= '9')) {
|
|
return dig - '0';
|
|
}
|
|
else if((dig >= 'a') && (dig <= 'z')) {
|
|
return dig - 'a';
|
|
}
|
|
else if((dig >= 'A') && (dig <= 'Z')) {
|
|
return dig - 'A';
|
|
}
|
|
else {
|
|
return -1;
|
|
}
|
|
}
|
|
static inline int is_octal_dig(char dig)
|
|
{
|
|
int tmp;
|
|
tmp = parse_num_dig(dig);
|
|
if((tmp >= 0) && (tmp <= 7)) {
|
|
return 1;
|
|
}
|
|
else {
|
|
return 0;
|
|
}
|
|
}
|
|
static inline int is_hex_dig(char dig)
|
|
{
|
|
int tmp;
|
|
tmp = parse_num_dig(dig);
|
|
if((tmp >= 0) && (tmp <= 15)) {
|
|
return 1;
|
|
}
|
|
else {
|
|
return 0;
|
|
}
|
|
}
|
|
static inline int parse_octal_dig(char dig)
|
|
{
|
|
int tmp;
|
|
tmp = parse_num_dig(dig);
|
|
if((tmp >= 0) && (tmp <= 7)) {
|
|
return tmp;
|
|
}
|
|
else {
|
|
return -1;
|
|
}
|
|
}
|
|
static inline int parse_hex_dig(char dig)
|
|
{
|
|
int tmp;
|
|
tmp = parse_num_dig(dig);
|
|
if((tmp >= 0) && (tmp <= 15)) {
|
|
return tmp;
|
|
}
|
|
else {
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
#endif |