#include<stdio.h>
int Reverse(unsigned int i)
{
int c=0;
do
{
c = c*10+i%10;
i/=10;
}while(i!=0);
i=c;
printf("%d\n",i);
return i;
}
void trans(int n ,int base)
{
unsigned int i = 0;
if(base == 2)
{
while(n != 0)
{
i = i*10+n%2;
n /= 2;
}
Reverse(i);
}
if(base == 8)
{
while(n != 0)
{
i = i*10+n%8;
n /= 8;
}
Reverse(i);
}
if(base == 16)
{
while(n != 0)
{
i = i*10+n%16;
n /= 16;
}
Reverse(i);
}
}
int main ()
{ char ch=0;
do{
int n,base,i;
printf("输入一个数:");
scanf("%d",&n);
printf("您想转化的进制为?[2/8/16]:");
scanf("%d",&base);
trans(n ,base);
printf("是否继续?[y/n][y]");
while ((ch=getchar())!='\n');
}while((ch=getchar())=='y'||ch=='\n');
return 0 ;
int Reverse(unsigned int i)
{
int c=0;
do
{
c = c*10+i%10;
i/=10;
}while(i!=0);
i=c;
printf("%d\n",i);
return i;
}
void trans(int n ,int base)
{
unsigned int i = 0;
if(base == 2)
{
while(n != 0)
{
i = i*10+n%2;
n /= 2;
}
Reverse(i);
}
if(base == 8)
{
while(n != 0)
{
i = i*10+n%8;
n /= 8;
}
Reverse(i);
}
if(base == 16)
{
while(n != 0)
{
i = i*10+n%16;
n /= 16;
}
Reverse(i);
}
}
int main ()
{ char ch=0;
do{
int n,base,i;
printf("输入一个数:");
scanf("%d",&n);
printf("您想转化的进制为?[2/8/16]:");
scanf("%d",&base);
trans(n ,base);
printf("是否继续?[y/n][y]");
while ((ch=getchar())!='\n');
}while((ch=getchar())=='y'||ch=='\n');
return 0 ;
}