首页 > 代码库 > 进制转换

进制转换

Problem Description
输入一个十进制数N,将它转换成R进制数输出。
 
Input
输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。
 
Output
为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。
 
Sample Input
7 2
23 12
-4 3
 
Sample Output
111
1B
-11
 
 1 #include <stdio.h> 2  3 int main(){ 4     int number; 5     int system; 6     char s[50]; 7     int i; 8     int length; 9     int flag;10     11     while((scanf("%d%d",&number,&system))!=EOF){12         i=0;13         flag=0;14         15         if(number<0){16             number=-number;17             flag=1;18         }19         20         while(number){21             if(number%system<=9){22                 s[i]=(number%system)+0;23             }24             25             else if(number%system==10)26                 s[i]=A;27                 28             else if(number%system==11)29                 s[i]=B;30             31             else if(number%system==12)32                 s[i]=C;33                 34             else if(number%system==13)35                 s[i]=D;36                 37             else if(number%system==14)38                 s[i]=E;39                 40             else if(number%system==15)41                 s[i]=F;42                 43             number/=system;44             i++;45         }46         length=i;47         48         if(flag==1)49             printf("-");50             51         for(i=length-1;i>=0;i--)52             printf("%c",s[i]);53             54         printf("\n");55         56         57         58     }59         60     61     return 0;62 }

 

 

 

 

进制转换