递归实现十进制转X进制
作者:yxin1322
blog:
http://blog.csdn.net/yxin1322
转载请注明出处
我们在初学进制转换的时候,最常用的十进制转换其他进制方法当数“
除n取余法”了,其中n是目标进制的基数。例如我们要把十进制的9转换成2进制,用除2取余法有如下过程:
2 | 9
—–
2 | 4 ….. 1
——
2 | 2 ….. 0
——
2 | 1 ….. 0
——
0 ….. 1
将每一步的余数自下而上输出即得9的二进制表示,把除数2换成其他整数还可以得到9的其他进制的表示。模拟这一过程,编写了函数Convertor,可以完成十进制到任意进制数的转换。
代码如下:
1 7 # <stdio.h> 8 9 Convertor( n, base); 10 11 main() 12 { 13 Convertor(,); 14 printf(); 15 } 16 17 Convertor( n, base) 18 { 19 temp=n%base; 20 n=n/base; 21 22 (n==) 23 printf(,temp); 24 25 { 26 Convertor(n,base); 27 printf(,temp); 28 } 29 }
调用函数Convertor(
34,
2),输出“
1 0 0 0 1 0”,即为34的二进制码。需要说明的是,当进制基数大于10时,程序并没有安排其他字母来代替大于10的数字,如当调用形式为Convertor(
31,
16)时,输出为“
1 15”,它相当于16进制表示法的
1F,程序仅简单地将结果的数位之间用空格隔开。