无符号整数转换为二进制、八进制和十六进制

时间:2021-12-21 22:47:12

/*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;
}
//注意八进制和十六进制转换方法与二进制的转换方法雷同,均为模拟人工法。