递归实现十进制转X进制

递归实现十进制转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,程序仅简单地将结果的数位之间用空格隔开。

    原文作者:进制转换
    原文地址: https://blog.csdn.net/yxin1322/article/details/574824
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞