编写一个程序,输出任意一个十进制整数对应的二进制数、八进制数和十六进制数。
#include<stdio.h> #include<string.h> int main(){ /*编写一个程序,输出任意一个十进制整数对应的二进制数、八进制数和十六进制数。*/ int a,b,c;//a用于二进制转换,b用于八进制转换,c用于16进制转换 int bin[100]; int oct[100]; char hex[100]; printf("输入一个十进制数:"); scanf("%d",&a); b=a;c=a; if(a==0){ printf("该十进制数对应的二进制数为0\n"); printf("该十进制数对应的八进制数为0\n"); printf("该十进制数对应的十六进制数为0"); return 0; } int i=0; while(a!=0){ bin[i++]=a%2; a/=2; } printf("该十进制数对应的二进制数为:"); //int size=sizeof(bin)/sizeof(bin[0]); for(i-=1;i>=0;i--){ printf("%d",bin[i]); } /* while(i>0){ printf("%d",bin[--i]); }*/ printf("\n"); int j=0; while(b!=0){ oct[j++]=b%8; b/=8; } printf("该十进制数对应的八进制数为:"); for(j-=1;j>=0;j--){ printf("%d",oct[j]); } printf("\n"); int k=0; while(c!=0){ if(c%16==10){ hex[k++]='A'; }else if(c%16==11){ hex[k++]='B'; }else if(c%16==12){ hex[k++]='C'; }else if(c%16==13){ hex[k++]='D'; }else if(c%16==14){ hex[k++]='E'; }else if(c%16==15){ hex[k++]='F'; }else{ hex[k++]=c%16+'0'; } c/=16; } printf("该十进制数对应的十六进制数为:"); for(k-=1;k>=0;k--){ printf("%c",hex[k]); } return 0; }