您的位置:首页 > 其它

10进制转n进制与n进制转10进制

2018-03-05 21:35 99 查看
10进制转n进制#include<stdio.h>

int main()
{
int n,m;
int len=0;
char ans[1100];
char num[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
scanf("%d%d",&n,&m);
while (n)
{
ans[len++]=num[n%m];
n=n/m;
}
for(int i=len-1;i>=0;i--)
{
printf("%c",ans[i]);
}
return 0;
}

n进制转10进制#include<stdio.h>
#include<string.h>
#include<math.h>
int n;
char m[1100];
int len;
void Ary();
void Ary_();
int main()
{
scanf("%d",&n);
scanf("%s",m);
len=strlen(m);
if(n<10)
{
Ary();
}
else if(n>10&&n<17)
{
Ary_();
}
else
{
printf("%s",m);
}
return 0;
}
void Ary()
{
int i,j;
float sum=0; //pow得到为浮点型的数
float mid; //pow得到为浮点型的数
for(i=len-1,j=0;i>=0;i--,j++)
{
mid=m[i]-'0';
sum+=mid*pow(n,j);
}
printf("%.0f",sum);
}
void Ary_()
{
int i,j;
float sum=0;
float mid=0;
for(i=len-1,j=0;i>=0;i--,j++)
{
if(m[i]>='A'&&m[i]<='F')
{
mid=m[i]-'A'+10;
sum+=mid*pow(n,j);
}
else
{
mid=m[i]-'0';
sum+=mid*pow(n,j);
}
}
printf("%.0f",sum);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: