在C中使用递归将十进制数转换为二进制数

Convert decimal number into binary using recursion in C

我有这个代码。代码一切正常。唯一的问题是我不明白为什么我们在最后第二行乘以 10 当函数 convert() 被递归调用时.

#include<stdio.h>
int convert(int);
int main()
{
    int dec,bin;
    printf("\n Enter the decimal no.:");
    scanf("%d",&dec);
    bin=convert(dec);
    printf("\n The binary equivalent is %d",bin);
    return 0;
}
int convert(int dec)
{
    if(dec==0)
     return 0;
    else
     return ((dec%2)+10 * convert(dec/2));
}

有人帮帮我。提前致谢。

你似乎不明白发生了什么:
想象一下,您正在将数字 9 转换为二进制数字,那么您应该得到“1001”,这是(使用您的程序)。

但是,“1001”(一零零一)显示为1001(一千零一)。

哦,你可能不明白,乘以10加点是在末尾追加点的方法:如果我让你把数字2追加到数字3上,你会这样做:

3 * 10 + 2 = 32

你在这里做同样的事情(但数字“假装”为二进制数字)。