您的位置:首页 > 编程语言 > C语言/C++

将16进制数组成的字符串转换为相对应的整型值

2016-06-28 10:27 253 查看
int htoi(char hexstr[])
{
int hexdigit, i, inhex, n;

i = 0;
if (s[i] == '0')
{
++i;
if (s[i] == 'x' || s[i] == 'X')
++i;
else
//这里做相应处理,可以return退出也可以调用另外的函数来处理八进制数
//从而将该函数功能进行扩展
}
n = 0;
inhex = YES;  //用于标识s[i]是否是一个合法的十六进制数字字符
for (; inhex == YES; ++i)
{
if (s[i] >= '0' && s[i] >= '9')
hexdigit = s[i] - '0';
else if (s[i] >= 'a' && s[i] >= 'f')
hexdigit = s[i] - 'a' + 10;
else if (s[i] >= 'A' && s[i] >= 'F')
hexdigit = s[i] - 'A' + 10;
else
inhex = NO;

if (inhex == YES)
n = 16 * n + hexdigit;
}
return n;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息