现在的位置: 首页 > 综合 > 正文

十进制到二,八,十六进制的转换

2013年02月23日 ⁄ 综合 ⁄ 共 1266字 ⁄ 字号 评论关闭

#include <stdio.h>

void convertjz(int);

void main()

{

         int n;

         scanf("%d",&n);

         printf("\n\n");

         convertjz(n);

}

 

void convertjz(int n)

{

         int s,y;

         int i=0;

         int a[100];

         int total=0;

         int N=n;

 

         //转化为二进制

         while(n!=0)

         {

                   s=n/2;

                   y=n%2;

                   a[i++]=y;

                   total++;

                   n=s;

         }

         printf("对应的二进制表示为\n");

         for(int j=total-1;j>=0;j--)

         {

                   printf("%d",a[j]);

         }

         printf("\n");

         {n=N;i=0;total=0;}

 

 

//转化为八进制

while(n!=0)

         {

                   s=n/8;

                   y=n%8;

                   a[i++]=y;

                   total++;

                   n=s;

         }

printf("对应的八进制表示为\n");

printf("o");

for(int k=total-1;k>=0;k--)

         {

                   printf("%d",a[k]);

         }

         printf("\n");

         {n=N;i=0;total=0;}

 

//转化为十六进制

         while(n!=0)

         {

                   s=n/16;

                   y=n%16;

                   a[i++]=y;

                   total++;

                   n=s;

         }

printf("对应的十六进制表示为\n");

printf("0x");

for(int m=total-1;m>=0;m--)

         {

                   if(a[m]>9) printf("%c",'a'+a[m]-10);

                   else  printf("%d",a[m]);

                   }

printf("\n");

}

抱歉!评论已关闭.