将十进制转换为s进制(2<=s<=16)
#include<stdio.h>
int main()
{
char a[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
int n,s,b[100],i=0;//将n转化为s进制
scanf("%d%d",&n,&s);
while(n!=0)
{
int m=n%s;
b[i]=m;
i++;
n=n/s;
}
int j;
for(j=i-1;j>=0;j--)
{
printf("%c",a[b[j]]);
}
}
将s进制转化为10进制
#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
char a[100];
scanf("%s",a);
int s,n,sum=0,j=0;
scanf("%d",&s);
n=strlen(a);
for(int i=n-1;i>=0;i--)
{
int num;
if(a[i]>='0'&&a[i]<='9')
num=a[i]-'0';
else
num=a[i]-55;
sum=sum+num*pow(s,j);
j++;
}
printf("%d",sum);
}