#include
#include
int change(int n,int *sum,int *m)//n为第n位,m总位数
{
char c;
if(c!='#')
{
*m=*m+1;
change(n+1,sum,m);
}
if(c=='#')
{
return *sum=int(*sum+pow(2,*m-n));
}
}
void main()
{
char c;
int n=0,*sum=0,*m=0;
printf("请输入二进制数(‘#'开始与结束):");
scanf("%c",c);
int t=change(n,*sum,*m);
printf("转化成十进制的数字为:%d",t);
}
#include
int change(int n,int *sum,int *m)//n为第n位,m总位数
{
char c;
if(c!='#')
{
*m=*m+1;
change(n+1,sum,m);
}
if(c=='#')
{
return *sum=int(*sum+pow(2,*m-n));
}
}
void main()
{
char c;
int n=0,*sum=0,*m=0;
printf("请输入二进制数(‘#'开始与结束):");
scanf("%c",c);
int t=change(n,*sum,*m);
printf("转化成十进制的数字为:%d",t);
}
本文介绍了一个使用C语言实现的递归函数,该函数能够将带有'#'字符标识开始和结束的二进制字符串转换为等价的十进制整数。通过递归调用和指数运算实现了从二进制到十进制的有效转换。
361

被折叠的 条评论
为什么被折叠?



