 ### C program to convert the given binary number into decimal

#### Problem Description

```This C language program converts a given binary number to decimal number. Binary numbers are the one which contains only 0 and 1. The program flow is as follows:

1. Take a binary number as input.
2. Starting from the last digit, multiply each digits of the binary number with the powers of 2 respectively(starting with 0).
3. Add all the multiplied digits.
4. The total sum gives the decimal number.```

##### C program to convert the given binary number into decimal - Source code
```

/* C program to convert the given binary number into decimal */

#include <stdio.h>
#include <math.h>

int binaryToDecimal(long binary_num)
{
int decimal_num = 0, i = 0, remainder;
while (binary_num!=0)
{
remainder = binary_num % 10;
binary_num = binary_num / 10;
decimal_num = decimal_num + remainder*pow(2,i);
i++;
}
return decimal_num;
}

int main()
{
long binary_num;
printf("Enter a binary number: ");
scanf("%ld", &binary_num);

printf("Equivalent decimal number is: %d", binaryToDecimal(binary_num));
return 0;
}

```

#### Program Output

```Case 1:

Enter a binary number: 10001001
Equivalent decimal number is: 137

Case 2:

Enter a binary number: 10001010
Equivalent decimal number is: 138```

#### Program Explanation

```1. A separate function binaryToDecimal is created to convert the given binary number to decimal.

2. Accept a binary number and store it in the variable binary_num.

3. Call the function binaryToDecimal function with one parameter binary_num from inside the printf statement.

4. Inside the user defined function, initialize the variable decimal_num and variable i to 0.

5. Obtain the remainder of the binary number using the modulus operator (%). Store the remainder in the variable remainder. Divide the decimal number by 10 to cut off the last digit.

6. Multiply remainder with the 2^i and add it to the decimal_num variable.

7. Increment the variable i by 1.

8. Repeat the steps 5, 6 and 7 until the binary_num value becomes 0.

9. Print the variable decimal_num as output.

10. Here note that it is necessary to include math.h header file as we are using the library function pow.```