递归实现十进制转X进制
2006-01-09 23:36
309 查看
递归实现十进制转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,可以完成十进制到任意进制数的转换。代码如下:
调用函数Convertor(34,2),输出“1 0 0 0 1 0”,即为34的二进制码。需要说明的是,当进制基数大于10时,程序并没有安排其他字母来代替大于10的数字,如当调用形式为Convertor(31,16)时,输出为“ 1 15”,它相当于16进制表示法的1F,程序仅简单地将结果的数位之间用空格隔开。
作者: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 /* 2 code by: yxin1322 3 date: 2006.1.8 4 blog: http://blog.csdn.net/yxin1322 5 Email: yxin1322@gmail.com 6 */ 7 #include <stdio.h> 8 9 void Convertor(int n, int base); /*n为待转换十进制数,base为目标进制基数*/ 10 11 int main() 12 { 13 Convertor(34,2); 14 printf("/n"); 15 } 16 17 void Convertor(int n, int base) 18 { 19 int temp=n%base; 20 n=n/base; 21 22 if(n==0) 23 printf(" %d",temp); 24 else 25 { 26 Convertor(n,base); 27 printf(" %d",temp); 28 } 29 }
调用函数Convertor(34,2),输出“1 0 0 0 1 0”,即为34的二进制码。需要说明的是,当进制基数大于10时,程序并没有安排其他字母来代替大于10的数字,如当调用形式为Convertor(31,16)时,输出为“ 1 15”,它相当于16进制表示法的1F,程序仅简单地将结果的数位之间用空格隔开。
相关文章推荐
- 用递归方式实现十进制转十六进制
- 利用递归调用实现十进制转化成任意进制
- 递归实现十进制到n[2, 10]进制转换
- 用递归实现十进制转换成二进制
- 递归实现将十进制转化为二进制
- 递归实现十进制到n[2, 10]进制转换
- 递归和while循环实现十进制转八进制
- 用递归实现十进制到十六进制的转换
- 递归实现十进制到2(其他)进制的转换
- 递归2: 十进制转换成二进制的递归与迭代实现
- 将十进制整数转换成b进制字符串 (递归和非递归实现)
- 12、JAVA 递归实现十进制到N进制的转换--未考虑负数
- 十进制转十进制以下的进制,用递归巧妙实现
- PHP实现十进制数字与二十六进制字母串相互转换操作示例
- 判断两个二叉树是否相等(仅结构) -- 递归和非递归实现
- 八皇后循环递归回溯实现
- 数据结构-二路归并-递归实现-C语言
- 二叉树三种遍历方式的递归与非递归实现
- 归并排序(递归实现)
- 怎样用QT下使用递归实现一棵二叉树