高手请分析一下下列程序,我是初学者

来源:百度知道 编辑:UC知道 时间:2024/05/22 15:26:20
#include<stdio.h>
void bin(int x)
{
if(x/2>0)
bin(x/2);
printf("%d",x%2);
}

void main()
{
bin(20);
printf("\n");
}

第二行到第七行是一个函数名为bin的递归函数。
主函数输入的是20,接着调用bin,此时x=20,x/2=10〉0。
第二次调用bin,x=10,x/2=5>0。
第三次调用bin,x=5,x/2=2>0。
第四次调用bin,x=2,x/2=1>0。
第五次调用bin,x=1,x/2=0,此时输出“1”。
返回第四次调用,x=2,执行输出“0”。
返回第三次输出,x=5,执行输出“1”。
返回第二次调用,x=10,执行输出“0”。
返回第一次调用,x=20,执行输出“0”。
返回到主函数,执行输出回车。
程序结束。
这个程序的目的是将一个十进制数转化成二进制数。我建议你看看递归函数,加深理解。

这是用递归法进行十进制到二进制的转换程序。
函数bin的作用就是依次按位输出二进制数的最高位到最低位。

十进制到二进制的转换