#include<stdio.h>
int *Change(int num);//函数声明
int i;
int main()
{
int num;
printf("请输入一个十进制数,程序将转换为2进制\n");
scanf("%d",&num);
printf("十进制%d转换为二进制为:",num);
int *p=Change(num); //函数调用
for(i--;i>=0;i--) //逆向输出数组元素
{
printf("%d",*(p+i));
}
printf("\n");
return 0;
}
int *Change(int num)
{
static int buf[64]={0};//定义数组存对2余数
if(num==0)
{
buf[i]=0;
}
else
{
buf[i]=num%2;
i++;
Change(num/=2); //递归调用
}
return buf; //返回数组地址
}
通过递归的方法实现进制转换,代码采用递归思想,定义一个数组对每次递归取余进行存取,最后函数返回数组地址,在主函数中对数组进行过输出。
输出结果如下