如何将16进制字符串转化成10进制输出
1个回答
展开全部
算法:
用变量a存放转换结果,赋初值为0
逐敬搭一取得字符串每个字符:从头一直取字符,直到遇到0为止
每取得一个字符:
-变量a自乘16
-判断字符是否数字字符,如果是数字字符则直接转换成数值
-否则,判断字符是否小写字母a~f,如果是转成10~15数值
-否则,判断字符是否大写字母a~f,如果是转成10~15数值
-将以上闹稿桐得到的数值加到变量a上,然后进行下一个字符的处理
例程:
#include<stdio.h>
int h2d(char *s) { int a=0;
while ( *s ) {
a*=16;
if ( *s>='0' && *s<='9' ) a+=*s-'0';
else 液坦if ( *s>='a' && *s<='f' ) a+=*s-'a'+10;
else if ( *s>='A' && *s<='F' ) a+=*s-'A'+10;
s++;
}
return a;
}
void main() { char s[256]; int x;
scanf("%s",s); x=h2d(s); printf("%d\n",x);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询