您的位置:首页 > 其它

十六进制转十进制(不使用系统函数)

2014-01-07 00:00 288 查看
#include <stdio.h>
unsigned long HEX2DEC(const char *s)
{
int i,t;
unsigned long sum=0;
for (i=0; s[i]; i++)
{
if ( (s[i]=='0' && s[i+1]=='x') || (s[i]=='\\' && s[i+1]=='x') )
{
i++;
continue; //0xff, \x64, 去前缀
}
if ( s[i]>='0' && s[i] <= '9' )
t = s[i]-'0';
else if ( s[i]>='A' && s[i] <= 'F')
t = s[i]-'A'+10;
else if ( s[i]>='a' && s[i]<='f' )
t = s[i]-'a'+10;
else
break;
sum=sum*16+t;
}
return sum;
}

int main()
{
const char *s="ABCD1234";
printf("%s -- %lu\n", s, HEX2DEC(s));
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  进制转换
相关文章推荐