文章
145
粉丝
217
获赞
21
访问
84.1k
细节!!!
#include <stdio.h>
#include <string.h>
#include <math.h>
//先将m进制x数转10进制数
long long Decimal(char x[],int m)
{
int i,k = 0,len;
long long d = 0;
len = strlen(x);
for(i = len-1; i >= 0; i--)
{
if(x[i] >= '0' && x[i] <= '9')
d += (x[i] - '0')*(pow(m,k));
else if(x[i] >= 'A') //进制字母
d += (x[i] - 'A' + 10)*(pow(m,k));
k++;
}
return d;
}
//再将十进制x转为相应的进制数
void Base_Conver(long long d,int n)
{
int x,i = 0,j;
char s[1000];
while(d > 0)
{
x = d%n;
if(x >= 10) s[i] = x - 10 + 'a';
else s[i] = x + '0';
d/=n;
i++;
}
for(j = i-1; j >= 0; j--)
printf("%c",s[j]);
}
int main()
{
int m,n,k;
long long d;
char x[1000];
scanf("%d %d",&m,&n);
scanf("%s",x);
//x(m进制)数转十进制数
d = Decimal(x,m);
//十进制数d转n进制数
Base_Conver(d,n);
return 0;
}
登录后发布评论
暂无评论,来抢沙发