进制转换

来源:互联网 发布:prim算法描述 编辑:程序博客网 时间:2024/05/18 00:59
  1. #include<stdio.h>   
  2.   
  3. void two(int n);    
  4. void ten(int n);    
  5. void sixteen(int n);    
  6.     
  7. int main()    
  8. {    
  9.     int n;    
  10.     printf("输入整数:");  
  11.     scanf("%d",&n);    
  12.   
  13.     two(n);    
  14.     ten(n);    
  15.     sixteen(n);   
  16.         
  17.     return 0;    
  18. }    
  19.     
  20. void two(int n)    
  21. {    
  22.     int i = 0;    
  23.     int s1[100];    
  24.     
  25.     while(n != 0)    
  26.     {    
  27.         s1[i] = n % 2;    
  28.         n = n / 2;    
  29.         i++;    
  30.     }  
  31.     printf("2进制:");  
  32.     for(i = i - 1; i >= 0; i--)    
  33.     {    
  34.         printf("%d", s1[i]);    
  35.         if(i % 4 == 0)    
  36.         {    
  37.             printf(" ");    
  38.         }    
  39.     }    
  40.     printf("\n");    
  41. }    
  42.     
  43. void ten(int n)    
  44. {    
  45.     int i = 0;    
  46.     int s1[100];    
  47.     
  48.     while(n != 0)    
  49.     {    
  50.         s1[i] = n % 10;    
  51.         n = n / 10;    
  52.         i++;    
  53.     }  
  54.     printf("10进制:");  
  55.     for(i = i -1; i >= 0; i--)    
  56.     {    
  57.         printf("%d",s1[i]);    
  58.     }    
  59.     printf("\n");    
  60. }   
  61.   
  62. void sixteen(int n)    
  63. {  
  64.     int i = 0, j;    
  65.     char s1[100];    
  66.     
  67.     while(n != 0)    
  68.     {  
  69.         switch(n % 16)  //十六进制的余数,在>=10时,变为A-F可以用switch,其余相似    
  70.         {  
  71.         case 0:s1[i] = '0';break;    
  72.         case 1:s1[i] = '1';break;    
  73.         case 2:s1[i] = '2';break;  
  74.         case 3:s1[i] = '3';break;    
  75.         case 4:s1[i] = '4';break;    
  76.         case 5:s1[i] = '5';break;    
  77.         case 6:s1[i] = '6';break;    
  78.         case 7:s1[i] = '7';break;    
  79.         case 8:s1[i] = '8';break;    
  80.         case 9:s1[i] = '9';break;    
  81.         case 10:s1[i] = 'A';break;    
  82.         case 11:s1[i] = 'B';break;    
  83.         case 12:s1[i] = 'C';break;    
  84.         case 13:s1[i] = 'D';break;    
  85.         case 14:s1[i] = 'E';break;    
  86.         case 15:s1[i] = 'F';break;  
  87.         }  
  88.         n = n / 16;    
  89.         i++;  
  90.     }  
  91.     printf("16进制:");  
  92.     for(i = i -1; i >= 0; i--)    
  93.     {    
  94.         printf("%c",s1[i]);    
  95.     }    
  96.     printf("\n");  
0 0
原创粉丝点击