C Program to convert Binary Number to Decimal

Problem

Write a program in C to convert a binary number to decimal number.

How to convert a binary number to decimal number in C ?

#include <stdio.h>
#include <math.h>
int BinaryToDecimal(long input);

int main()
{
    long input;
    printf("Abundantcode.com Coding samples\n");
    printf("Enter a binary number: ");
    scanf("%ld", &input);
    printf("%d in decimal", BinaryToDecimal(input));
    return 0;
}

int BinaryToDecimal(long input)
{
    int decimalNumber = 0, i = 0, remainder;
    while (input!=0)
    {
        remainder = input%10;
        input /= 10;
        decimalNumber += remainder*pow(2,i);
        ++i;
    }
    return decimalNumber;
}

Output

Abundantcode.com Coding samples       
Enter a binary number: 1101                                                   
13 in decimal