十六进制转十进制 2.0
#include<stdio.h> #include<string.h> int change(char str1[100]);//对于change函数的声明 int main(){ int sum=0; //初始化十进制的数为0 char str1[100]; //定义字符串数组用来存储十六进制数 scanf("%s",str1);//输入十六进制的数 sum=change(str1);//调用change函数 printf("%d",sum); } int change(char str1[100]){//定义change函数 将十六进制的数转换为十进制数 int i,k,m,n,sum; m=strlen(str1); //使用strlen函数测量字符串长度 n=1; for(i=m-1;i>=0;i--){//从最高位开始设置循环 if(i<m-1) n=n*16;//位权依次乘以16的倍数 if(str1[i]>='A') sum=sum+(str1[i]-55)*n;//如果字符在A之后,减去55取其数字进行乘积 else sum=sum+(str1[i]-'0')*n;//否则减去零字符 取数字 注意数字字符不能直接使用,要经过ascii码的变换 } return sum; }
人生如逆旅,我亦是行人