屋面保温施工规范:请教算法一个:将16进制的字符串转换成10进制整数

来源:百度文库 编辑:神马品牌网 时间:2024/05/07 06:18:47
最好能用递归的方法,用C语言实现

我调试过了,没错了.

//返回字符串表示的数(-1为出错)
//pch:十六进制字符串
//at:计算的位置(从最后一个字符开始到第0的位置,开始时是strlen(pch))
int myto(char* pch , int at)
{
if( at <= 0 )
return 0;
char a = pch[--at];
if(a>='0'&&a<='9')
{
a-='0';
}
else if(a>='a'&&a<='f')
{
a-='a';
a+=0xa;
}
else if(a>='A'&&a<='F')
{
a-='A';
a+=0xa;
}
else
{
return -1;
}
int b = myto( pch , at );
return b==-1 ? -1 : (int(a) + 16 * b);
}

不需要用地跪,地跪消耗资源很大

用这个来读16禁止数
sscanf(s,"%x",&x);