递归实现十进制转二进制

古城微笑少年丶 2022-08-07 08:44 225阅读 0赞
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. //输入一个十进制,自己写一个函数转换为二进制
  4. //10进制转2进制:方法是除以2取余,逆序排列
  5. //如果想转换为 8进制,则把代码中的2改为8就OK
  6. //下面这个是递归!!!
  7. void change2(int num)//如果输入num为10
  8. {
  9. if(num==0)
  10. {
  11. return ;
  12. }
  13. else
  14. {
  15. /* 不能这样写
  16. printf("%d",num%2);结果是0101 从上往下 ? 在递归调用之上就是顺序输出
  17. change2(num/2);
  18. */
  19. change2(num/2); //先反复调用自身后一次返回
  20. printf("%d",num%2);//结果是1010 从下往上? 在递归调用之下就是逆序输出!
  21. }
  22. }
  23. int main()
  24. {
  25. int num;
  26. printf("请输入一个十进制数,程序将转换为2进制\n");
  27. scanf("%d",&num);
  28. printf("十进制%d转换为二进制为:",num);
  29. change2(num);//调用
  30. return 0;
  31. }

发表评论

表情:
评论列表 (有 0 条评论,225人围观)

还没有评论,来说两句吧...

相关阅读