c语言十六进制转十进制的算法怎么写

如题所述

.2进制八进制和十六进制到10进制:
从2进制八进制和十六进制数的最低位(最右端第n=1位),依次将乘以进制数的n-1次方相加
例如:二进制数11010转十进制 (我用m^n表示m的n次方)
0*2^0 + 1*2^1 + 0*2^2 + 1*2^3 + 1*2^4=26;
八进制数20转十进制 0*8^0+2*8^1=16;

所以算法也是类似,这代码是借鉴别人的。如下:
#include <stdio.h>
#define N 10

int HtoD(char *s)
{
int i,d=0;
char t;
for(i=0; s[i]!='\0'; i++)
{
d=d*16;
t=s[i];
if(t>='0' && t<='9')
d=d+t-'0';
else if(t>='a' && t<='f')
{
d=d+t-'a'+10;
}
else if(t>='A' && t<='F')
{
d=d+t-'A'+10;
}

}
return d;
}
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网