hexsz2int 16進数列を整数に変換する
int hexsz2int(char *str);
str 16進数ASCIZ文字列
16進数列を表す整数
int hexsz2int(char *str)
{
int val;
int sign;
while (*str == ' ' || *str == '\t') str++;
sign = 1;
if (*str == '+') str++;
else if (*str == '-') {
sign = -1;
str++;
}
val = 0;
while (*str >= '0' && *str <= '9' ||
*str >= 'A' && *str <= 'F' ||
*str >= 'a' && *str <= 'f') {
val <<= 4;
if (*str >= '0' && *str <= '9') val += *str - '0';
else if (*str >= 'A' && *str <= 'F') val += *str - 'A' + 10;
else val += *str - 'a' + 10;
str++;
}
return sign == 1 ? val : -val;
}