谁能帮我解释一下这串代码,数学逻辑的

#include <stdio.h>
int main()
{
int num,bin=0,ren=0,place=1;
scanf("%d",&num);
printf("\n equivalent of %d is",num);
while(num)
{
ren=num%2;
num=num/2;
bin=bin+(renplace);
place=place
10;

}
printf("%d\n",bin);
return 0;

}

将十进制转为二进制。


while(num)//判断当前num是否为0
{
ren=num%2;//当前num对2取余(结果为0或1)
num=num/2;//对当前num除2取整
bin=bin+(ren*place);//将所有的二进制数叠加
place=place*10;//控制十进制位数
}