#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
int what,input;
void toall(int tmp,int a,int b)
{
int p;
char str[]={"0123456789ABCDEF"};
char arr[32]={"\0"};
int i=31;
if(tmp==0)
return;
while(tmp!=0)
{
p=tmp&a;
arr[i--]=str[p];
tmp=tmp>>b;
}
printf("%d转换为%d进制为:",input,what);
for(int j=i+1;j<32;j++)
printf("%c",arr[j]);
}
int main()
{
while(1)
{
printf("十进制转二进制-------->2\n");
printf("十进制转八进制-------->8\n");
printf("十进制转十六制-------->16\n请选择:");
scanf("%d",&what);
if(what!=2&&what!=8&&what!=16)
printf("输入的数不合法!请重新输入!\n");
else break;
}
printf("输入需要转换的十进制数字:");
scanf("%d",&input);
switch(what)
{
case 2:toall(input,1,1);break;
case 8: toall(input,7,3);break;
case 16: toall(input,15,4);break;
}
getch();
}
我这刚写了个转各进制的代码,你可以看看
-物联网校企联盟技术部