C语言编程 十六进制转化成十进制
2个回答
展开全部
#include<iostream>
using namespace std;
int cf(int a,int b)//这是算乘方的函数,返回的结果为a的b次方
{
int x=1,i;
for (i=1;i<=b;i++)
x*=a;
return x;
}
int zhuanhuan(char a)
{
if (a-'0'>=0&&a-'0'<=9)
return a-'0';
else switch(a)
{
case 'A':return 10;
case 'B':return 11;
case 'C':return 12;
case 'D':return 13;
case 'E':return 14;
case 'F':return 15;
}
}
int main()
{
char a[100];//用字符数组存储这个数操作方便
int l,i,s=0,t;
scanf("%s",a);
l=strlen(a);//测量这个数的长度,即位数
for (i=0;i<l;i++)
{
//把字符类型的变量转换成整数类型
t=zhuanhuan(a[i]);
s+=t*cf(16,l-i-1);//依次累加
}
printf("%d\n",s);
return 0;
}
using namespace std;
int cf(int a,int b)//这是算乘方的函数,返回的结果为a的b次方
{
int x=1,i;
for (i=1;i<=b;i++)
x*=a;
return x;
}
int zhuanhuan(char a)
{
if (a-'0'>=0&&a-'0'<=9)
return a-'0';
else switch(a)
{
case 'A':return 10;
case 'B':return 11;
case 'C':return 12;
case 'D':return 13;
case 'E':return 14;
case 'F':return 15;
}
}
int main()
{
char a[100];//用字符数组存储这个数操作方便
int l,i,s=0,t;
scanf("%s",a);
l=strlen(a);//测量这个数的长度,即位数
for (i=0;i<l;i++)
{
//把字符类型的变量转换成整数类型
t=zhuanhuan(a[i]);
s+=t*cf(16,l-i-1);//依次累加
}
printf("%d\n",s);
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询