#include<stdio.h>
void trans(int n,int base)
{
int a[10],i=0,k;
if(base==2)
{
while (n != 0)
{
a[i]= n%2;
n=n/2;
i++;
}
k=i;
for(i=k-1;i>=0;i--)
printf("%d",a[i]);
}
if(base==8)
{
while (n != 0)
{
a[i]= n%8;
n=n/8;
i++;
}
k=i;
for(i=k-1;i>=0;i--)
printf("%d",a[i]);
}
if(base==16)
{
while (n != 0)
{
a[i]= n%16;
n=n/16;
i++;
}
k=i;
for(i=k-1;i>=0;i--)
{
if(a[i]>=0&&a[i]<=9)
printf("%d",a[i]);
if(a[i]>=10&&a[i]<=15)
{
switch(a[i])
{
case 10: printf("A");break;
case 11: printf("B");break;
case 12: printf("C");break;
case 13: printf("D");break;
case 14: printf("E");break;
case 15: printf("F");break;
}
}
}
}
}
int main()
{
int i,j;
while(1)
{
printf("請輸入一個數字:");
scanf("%d", &i);
printf("需要轉換成哪種進制數(2? 8? 16?)");
scanf("%d",&j);
printf("轉化為%d進制為:",j);
trans(i,j);
printf("\n");
}
return 0;
}
