c语言16进制转10进制函数(c语言16进制转10进制代码)

代码一:

#include <stdio.h>

#include <math.h>

#include <string.h>

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

{

int i,t;

long sum=0;

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

{

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

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

t=a[i]-'0';

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

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

t=a[i]-'A'+10;

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

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

t=a[i]-'a'+10;

sum=sum*16+t;

}

printf("转换十进制为:");

printf("%d",sum);

}

int main( )

{

char a[10];

void convert(char a[]);

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

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

convert(a); //转换数组

return 0;

}

代码二:

#include<stdio.h>

#define N 50

long fun(char *s)

{

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

long sum =0;

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

{

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

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

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

t=s[i]-'a'+10;

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

t=s[i]-'A'+10;

sum=sum*16+t;

}

return sum;

}

int main()

{

int m;

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

printf("Enter 16进制数:");

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

m=fun(s);

printf("%d",m);

}

c语言16进制转10进制函数(c语言16进制转10进制代码)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论