用函数实现二进制转十进制

大家好,这个代码该怎么弄,要求二进制专十进制,给定了主函数,要求用给定的主函数调用编写二进制专十进制,我已经写出来了Decimal这个函数,可是实在不知道如何写Binary,也不是很能理解为什么要定义两个函数

#include
#define FALSE 0
#define TRUE 1
int main(void)
{
long binary,decimal;
while(1)
{
binary=BinaryInput();
if(isInputError(binary)==FALSE) continue;
else {
decimal=BinaryToDecimal(binary);
break;
}
}
printf("二进制数%1d对应的十进制数是%d\n",binary,decimal);
return 0;
}
long Binary (int m)
long Decimal(int n)
{
if (n == 1 || n == 0)
return n;
else
return Decimal(n / 10) * 2 + n % 10;
}

修改如下,供参考:

#include<stdio.h>
#define FALSE 0
#define TRUE 1
long BinaryInput()
{
    long binary = 0;
    int  i;
    char s[16];
    scanf("%s", s);
    for (i = 0; s[i]; i++)
        binary = binary * 10 + s[i] - '0';
    return binary;
}
int isInputError(long binary)
{
    while (binary) {
        if (binary % 10 > 1)
            return FALSE;
        binary /= 10;
    }
    return TRUE;
}
long BinaryToDecimal(long n)
{
    if (n == 1 || n == 0)
        return n;
    else
        return BinaryToDecimal(n / 10) * 2 + n % 10;
}
int main(void)
{
    long binary, decimal;
    while (1)
    {
        binary = BinaryInput();
        if (isInputError(binary) == FALSE) continue;
        else {
            decimal = BinaryToDecimal(binary);
            break;
        }
    }
    printf("二进制数%1d对应的十进制数是%d\n", binary, decimal);
    return 0;
}

二进制数只能为0和1,第一个函数应该是判断输入是否符合二进制条件的,即返回True或False