如何解决使用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 举报,一经查实,本站将立刻删除。