#include <stdio.h>
int main()
{
int a;
printf("please enter a number:\n");
scanf("%d",&a);
printf("the decimal number is:%d\n",a);
int d=a;
int b[50]={0}
,i=0;
printf("the binary number is:");
for(i=0;i<50;i++)
{
b[i]=a%2;
a=a/2;
if(a==0 || a==1){
b[i+1]=a;
break;
}
}
for(i++;i>=0;i--)
printf("%d",b[i]);//到此为2进制转换
printf("\n");
int c[50]={0}
,j;
printf("the Hexadecimal number is:");
for(j=0;j<50;j++)
{
c[j]=d%16;
switch(c[j])
{
case 10: c[j]='A';break;
case 11: c[j]='B';break;
case 12: c[j]='C';break;
case 13: c[j]='D';break;
case 14: c[j]='E';break;
case 15: c[j]='F';break;
case 9 : c[j]='9';break;
case 8 : c[j]='8';break;
case 7 : c[j]='7';break;
case 6 : c[j]='6';break;
case 5 : c[j]='5';break;
case 4 : c[j]='4';break;
case 3 : c[j]='3';break;
case 2 : c[j]='2';break;
case 1 : c[j]='1';break;
case 0 : c[j]='0';break;
}d=d/16;
if (d==0)
break;
}
for(j++;j>=0;j--)
printf("%c",c[j]);
printf("\n");//到此为16进制转换
return 0;
int main()
{
int a;
printf("please enter a number:\n");
scanf("%d",&a);
printf("the decimal number is:%d\n",a);
int d=a;
int b[50]={0}
,i=0;
printf("the binary number is:");
for(i=0;i<50;i++)
{
b[i]=a%2;
a=a/2;
if(a==0 || a==1){
b[i+1]=a;
break;
}
}
for(i++;i>=0;i--)
printf("%d",b[i]);//到此为2进制转换
printf("\n");
int c[50]={0}
,j;
printf("the Hexadecimal number is:");
for(j=0;j<50;j++)
{
c[j]=d%16;
switch(c[j])
{
case 10: c[j]='A';break;
case 11: c[j]='B';break;
case 12: c[j]='C';break;
case 13: c[j]='D';break;
case 14: c[j]='E';break;
case 15: c[j]='F';break;
case 9 : c[j]='9';break;
case 8 : c[j]='8';break;
case 7 : c[j]='7';break;
case 6 : c[j]='6';break;
case 5 : c[j]='5';break;
case 4 : c[j]='4';break;
case 3 : c[j]='3';break;
case 2 : c[j]='2';break;
case 1 : c[j]='1';break;
case 0 : c[j]='0';break;
}d=d/16;
if (d==0)
break;
}
for(j++;j>=0;j--)
printf("%c",c[j]);
printf("\n");//到此为16进制转换
return 0;
}
用辗转相除法再将数组逆向输出