= '0' && *p <= '9')Res =" />
您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> C/C++ >> 进制转换问题???

进制转换问题???

来源:网络整理     时间:2016/6/23 14:12:02     关键词:

关于网友提出的“ 进制转换问题???”问题疑问,本网通过在网上对“ 进制转换问题???”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 进制转换问题???
描述:

char *AD = "0003,002,0010,005a";
AD代表一个16进制数,如何用c程序转换成十进制数


解决方案1:

参考一下吧!
int convert(char* data)
{
int Res = 0;
char* p = data;
while (*p != '\0')
{
if (*p >= '0' && *p <= '9')
Res = Res * 16 + *p - '0';
else if (*p >= 'a' && *p <= 'f')
Res = Res * 16 + *p - 'a' + 10;
else if (*p == ','){}
else
return -1;
p++;
}
return Res;
}

解决方案2:

仅供参考:

#include 
char s[]="123 ab 4";
char *p;
int v,n,k;
void main() {
    p=s;
    while (1) {
        k=sscanf(p,"%d%n",&v,&n);
        printf("k,v,n=%d,%d,%d\n",k,v,n);
        if (1==k) {
            p+=n;
        } else if (0==k) {
            printf("skip char[%c]\n",p[0]);
            p++;
        } else {//EOF==k
            break;
        }
    }
    printf("End.\n");
}
//k,v,n=1,123,3
//k,v,n=0,123,3
//skip char[ ]
//k,v,n=0,123,3
//skip char[a]
//k,v,n=0,123,3
//skip char[b]
//k,v,n=1,4,2
//k,v,n=-1,4,2
//End.
解决方案3:


int main(void) {
int i;
char *AD = "00030020010005a";
sscanf(AD, "%x", &i);
printf("%d", i);
return 0;
}
//1048666
解决方案4:

参看:http://blog.csdn.net/ixidof/article/details/6081217


以上介绍了“ 进制转换问题???”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2004597.html

相关图片

相关文章