题目:将字符串类型的十六进制数转化成整数类型的十进制数。
long htoi(char *pstr)
{
int i = 0;
int nNums = 0;
int nIdx = 0;
long lSum = 0;
if(pstr[i] == '-')
{
nIdx = -1;
i++;
}
while(1)
{
if(pstr[i] >= 'A' && pstr[i] <= 'F')
{
nNums = pstr[i] - 'A' + 10;
}
else if(pstr[i] >= 'a' && pstr[i] <= 'f')
{
nNums = pstr[i] - 'a' + 10;
}
else if(pstr[i] >= '0' && pstr[i] <= '9')
{
nNums = pstr[i] - '0';
}
else
{
break; //如果不属于该进制中的数
}
lSum = 16 * lSum + nNums;
i++;
}
if(nIdx == -1)
{
lSum = -lSum;
}
return lSum;
}