C Program to Convert Binary to Decimal

Write a C Program to Convert Binary Numbers to Decimal number using a while loop with an example. This C example allows to enter the binary value and uses the while loop to convert binary to decimal.

#include <stdio.h>

int main()
{
    int binary, decimal = 0, base = 1, remainder;
    
    printf("Enter the Binary Number = ");
    scanf("%d", &binary);

    int temp = binary;
    while(temp > 0)
    {
        remainder = temp % 10;
        decimal = decimal + remainder * base;
        temp = temp / 10;
        base = base * 2;
    }

    printf("The Binary Value  = %d\n", binary);
    printf("The Decimal Value = %d\n", decimal);

    return 0;
}
C Program to Convert Binary To Decimal 1

Binary = 1101

While Loop first Iteration: while(1101 > 0) – True
remainder = 1101 % 10 = 1
decimal = 0 + 1 * 1 = 1
temp = 110
base = 1 * 2 = 2

Second Iteration: while(110 > 0) – True
remainder = 110 % 10 = 0
decimal= 1 + 0 * 2 = 1
temp = 11
base = 2 * 2 = 4

C Binary to Decimal Third Iteration: while(11 > 0) – True
remainder = 11 % 10 = 1
decimal= 1 + 1 * 4 = 5
temp = 1
base = 4 * 2 = 8

Fourth Iteration: while(1 > 0) – True
remainder = 1 % 10 = 1
decimal = 5 + 1 * 8 = 13
temp = 0
base = 8 * 2 = 16

Fifth Iteration: while(0 > 0) – False. The compiler exits from the loop and the final value = 13.

C Program to Convert Binary to Decimal number using for loop.

#include <stdio.h>

int main()
{
    int binary, decimal = 0, base = 1, remainder, temp;
    
    printf("Enter the Binary Number = ");
    scanf("%d", &binary);

   for(temp = binary; temp > 0; temp = temp / 10)
    {
        remainder = temp % 10;
        decimal = decimal + remainder * base;
        base = base * 2;
    }

    printf("The Binary Value  = %d\n", binary);
    printf("The Decimal Value = %d\n", decimal); 

    return 0;
}

C Binary to Decimal using for loop output

Enter the Binary Number = 110110
The Binary Value  = 110110
The Decimal Value = 54

In this C Program, we created a function and used a slightly different approach to Convert Binary to Decimal numbers.

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

int binaryToDecimal(int binary)
{
    int decimal = 0, i = 0, remainder;

    while(binary != 0)
    {
         remainder = binary % 10;
         decimal = decimal + (remainder * pow(2, i));
         binary = binary / 10;
         ++i;
    }
    return decimal;
}

int main()
{
    int binary, decimal;
    
    printf("Enter the Binary Number = ");
    scanf("%d", &binary);

    decimal = binaryToDecimal(binary);

    printf("The Binary Value  = %d\n", binary);
    printf("The Decimal Value = %d\n", decimal); 

    return 0;
}

C Binary to Decimal using Functions output

Enter the Binary Number = 11110101
The Binary Value  = 11110101
The Decimal Value = 245