#include<stdio.h> #include<stdlib.h> //输入一个十进制,自己写一个函数转换为二进制 //10进制转2进制:方法是除以2取余,逆序排列 //如果想转换为 8进制,则把代码中的2改为8就OK //下面这个是递归!!! void change2(int num)//如果输入num为10 { if(num==0) { return ; } else { /* 不能这样写 printf("%d",num%2);结果是0101 从上往下 ? 在递归调用之上就是顺序输出 change2(num/2); */ change2(num/2); //先反复调用自身后一次返回 printf("%d",num%2);//结果是1010 从下往上? 在递归调用之下就是逆序输出! } } int main() { int num; printf("请输入一个十进制数,程序将转换为2进制\n"); scanf("%d",&num); printf("十进制%d转换为二进制为:",num); change2(num);//调用 return 0; }
原文:http://blog.csdn.net/u012110719/article/details/44646693