微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决使用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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。