标签:int 反向 逻辑性 相关 结构 解释 oid 知识 调用
将10进制转换成2进制,是除以2得到的余数,再倒序排列,这可以用递归实现,也可以用数据结构——栈实现。
先看递归实现:
1 #include<stdio.h>
2 void to_two(int num);
3 int main()
4 {
5 int a = 10;
6 to_two(a);
7
8 return 0;
9 }
10 /*递归实现把一个数转成16/8/2进制*/
11 //转16/8/2进制分别求余16/8/2,再除以16/8/2
12 //10 转 2进制
13 void to_two(int num)
14 {
15 if (num!=0)
16 {
17 int remainder = num % 2;
18 to_two(num/2);
19 printf("%d", remainder);//这个输出函数的位置如果和上一句对调位置,将顺序输出
20 }
21 else
22 {
23
24 }
25 }
递归的实现方式,需要一定的逻辑性,如果把上述的打印函数和递归调用调换位置,输出将反向。这里对于递归的基础知识不做解释,如果忘记了,查询相关资料。
这里用递归能够很好的实现把最后求出的数先打印出来,对于这种先进后出,后进先出的模型,很自然会想到栈的实现。
那么,下面用数组实现一个栈,完成这个转换:
标签:int 反向 逻辑性 相关 结构 解释 oid 知识 调用
原文地址:http://www.cnblogs.com/yangguang-it/p/6559893.html