字串表示一个十六进制的数,怎么转成其代表的数据大小??

来源:百度知道 编辑:UC知道 时间:2024/07/08 09:22:53
char[]={ "499602D2"} 字串表示一个十六进制的数,

怎么转成 int i= 0x499602D2 也就是十进制的 int i= 1234567890 ???

反过来 int =1234567890

怎么转成 char[]={ "499602D2"} 或 char[]={ "1234567890"}

说详细点 菜鸟好理解~~

/*下面的程序,已经验证通过,自己可以编译出来运行一下看看。*/

#include <stdio.h>
#include <string.h>

int str2hex(const char *ch) /* 字符串转16进制数 */
{
int i=0, tmp, result=0;

for(i=0; i<strlen(ch); i++) /* 把字符一个一个转成16进制数 */
{
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(