/*下面的程序,已经验证通过,自己可以编译出来运行一下看看。*/
#include
#include
int str2hex(const char *ch) /* 字符串转16进制数 */
{
int i=0, tmp, result=0;
for(i=0; i
if((ch[i]>='0')&&(ch[i]<='9'))
tmp = ch[i]-'0';
else if((ch[i]>='A')&&(ch[i]<='F'))
tmp = ch[i]-'A'+10;
else if((ch[i]>='a')&&(ch[i]<='f'))
tmp = ch[i]-'a'+10;
else
return -1; /* 出错了 */
result = result*16+tmp; /* 转成16进制数后加起来 */
}
return result;
}
int main(void)
{
char ch[] = "499602D2";
char bufDec[10];
char bufHex[10];
int i=0;
i = str2hex(ch); /* 16进制字符串转成整数 */
/* 反过来,可以调用sprintf函数 */
sprintf(bufDec, "%d", i);
sprintf(bufHex, "%x", i);
printf("Dec=%s,Hex=%s\n", bufDec, bufHex);
/* 或者用printf函数直接输出显示 */
printf("i=%d=%x", i, i);/* 反过来只要调用printf函数就可以了 */
return 0;
}