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

About Suresh

Suresh is the founder of TutorialGateway and a freelance software developer. He specialized in Designing and Developing Windows and Web applications. The experience he gained in Programming and BI integration, and reporting tools translates into this blog. You can find him on Facebook or Twitter.