十进制转十六进制 16进制计算器

代码一:

include

include

include

void convert(char a[]) //十六进制 转 十进制

{

int i,t;

long sum=0;

for(i=0;a[i];i++)

{

if(a[i]>=&39;0&39;&&a[i]<=&39;9&39;)

// num+=(a[i]-&39;0&39;)*pow(16,n-1-i);

t=a[i]-&39;0&39;;

else if(a[i]>=&39;A&39;&&a[i]<=&39;F&39;)

// num+=(10+(a[i]-&39;A&39;))*pow(16,n-1-i);

t=a[i]-&39;A&39;+10;

else if(a[i]>=&39;a&39;&&a[i]<=&39;f&39;)

// num+=(10+(a[i]-&39;A&39;))*pow(16,n-1-i);

t=a[i]-&39;a&39;+10;

sum=sum*16+t;

}

printf(&34;转换十进制为:&34;);

printf(&34;%d&34;,sum);

}

int main( )

{

char a[10];

void convert(char a[]);

printf(&34;请输入十六进制数:&34;);

gets(a); //输入十六进制数数组

convert(a); //转换数组

return 0;

}

代码二:

include

define N 50

long fun(char *s)

{

int i,t; //t记录临时加的数

long sum =0;

for(i=0;s[i];i++)

{

if(s[i]>=&39;0&39;&&s[i]<=&39;9&39;)

t=s[i]-&39;0&39;; //当字符是0?9时保持原数不变

if(s[i]>=&39;a&39;&&s[i]<=&39;z&39;)

t=s[i]-&39;a&39;+10;

if(s[i]>=&39;A&39;&&s[i]<=&39;Z&39;)

t=s[i]-&39;A&39;+10;

sum=sum*16+t;

}

return sum;

}

int main()

{

int m;

char s[N]; //字符串与字符数组相结合的方式

printf(&34;Enter 16进制数:&34;);

scanf(&34;%s&34;,s); //注意此处%s

m=fun(s);

printf(&34;%d&34;,m);

}

免责声明:本文章由会员“高悦”发布如果文章侵权,请联系我们处理,本站仅提供信息存储空间服务如因作品内容、版权和其他问题请于本站联系