/*2、编一程序,实现将输入的一个无符号整数转换为二进制、八进制和十六进制表示;
分别存入字符数组中并输出。(提示:算法采用模拟人工法。)*/
#include<stdio.h>
int main()
{
int m;
while(scanf("%d",&m)!=EOF)
{
int a[1010],b[1010],c[1010];
int x,y,z,t,i;
printf("**********************\n");
//转换为二进制
x=m,t=0;
while(x!=0)
{
a[t++]=x%2;
x/=2;
}
printf("转化为二进制为:\n");
for(i=t-1; i>=0; i--)
printf("%d",a[i]);
printf("\n");
//转换为八进制
x=m,t=0;
while(x!=0)
{
b[t++]=x%8;
x/=8;
}
printf("转化为八进制为:\n");
for(i=t-1; i>=0; i--)
printf("%d",b[i]);
printf("\n");
//转换为十六进制
x=m,t=0;
while(x!=0)
{
c[t++]=x%16;
x/=16;
}
printf("转化为十六进制为:\n");
for(i=t-1; i>=0; i--)
printf("%d",c[i]);
printf("\n");
printf("**********************\n\n");
}
return 0;
}
//注意八进制和十六进制转换方法与二进制的转换方法雷同,均为模拟人工法。