In this example, you will learn to convert binary to decimal numbers. Here we write a C program that takes a binary number as input and converts it into an equivalent decimal number. Converting a binary number to decimal means converting the number with base value 2 to base value 10.
The base value of a number system determines the number of digits used to represent a numeric value. For example, a binary number system uses 2 digits 0-1 to represent any numeric value.
Given a binary number n, you need to convert to a decimal number.
Example,
Input: 101 Output: 5 Input: 1001 Output: 9
To understand this code, you must have knowledge of the following C programming topics:
Binary to Decimal Conversion Formula:
The following formula is used to convert binary numbers to decimal numbers.
(Decimal Num)10 = ( d 0 × 20 )+ ( d 1 × 21 )+ ( d 2 × 22 )+ ….. + ( d n − 1 × 2n-1)
where “d” is a binary number containing “n” digits and d 0 , d 1 , d 2 , …, dn-1 are the individual digits of the binary number starting from the right-most position.
Example,
Let us convert (1001)2, from binary to decimal using the formula. We start doing the conversion from the rightmost digit, which is ‘1’ here.
(Decimal Number)10 = (d0 × 20 )+ (d1 × 21 )+ (d2 × 22 )+ ….. (dn−1 × 2n-1)
= (1 × 20) + (0 × 21) + (0 × 22) + (1 × 23)
= (1 × 1) + (0 × 2) + (0 × 4) + (1 × 8)
= 1 + 0 + 0 + 8
= 9
Chart For Binary to Decimal Conversion
The binary to the decimal conversion of the first 20 decimal numbers is displayed in the chart given below.
| Binary | Decimal |
|---|---|
| 0 | 0 |
| 1 | 1 |
| 10 | 2 |
| 11 | 3 |
| 100 | 4 |
| 101 | 5 |
| 110 | 6 |
| 111 | 7 |
| 1000 | 8 |
| 1001 | 9 |
| 1010 | 10 |
| 1011 | 11 |
| 1100 | 12 |
| 1101 | 13 |
| 1110 | 14 |
| 1111 | 15 |
| 10000 | 16 |
| 10001 | 17 |
| 10010 | 18 |
| 10011 | 19 |
| 10100 | 20 |
C Program to Convert Binary Number to Decimal:
Method 1: Using math.h library function
#include <stdio.h>
#include <math.h>
// function definition
int convertBinaryToDecimal(long long n)
{
int dec = 0, i = 0, rem;
while (n!=0)
{
rem = n % 10;
n /= 10;
dec += rem * pow(2, i);
++i;
}
return dec;
}
int main()
{
long long n = 1001;
const int dec = convertBinaryToDecimal(n);
printf("%lld in binary = %d in decimal\n", n, dec);
return 0;
}
Output:

Method 2:
#include <stdio.h>
// function definition
int convertBinaryToDecimal(long long n)
{
int num = n;
int dec_value = 0;
// Initializing baseValue value to 1, i.e 2^0
int baseValue = 1;
int temp = num;
while (temp)
{
int last_digit = temp % 10;
temp = temp / 10;
dec_value += last_digit * baseValue;
baseValue = baseValue * 2;
}
return dec_value;
}
int main()
{
long long n = 10011;
const int dec = convertBinaryToDecimal(n);
printf("%lld in binary = %d in decimal\n", n, dec);
return 0;
}
Output:
10011 in binary = 19 in decimal
Note: Above mentioned C program works only with binary numbers in the range of integers.
Recommended Post:
- C Programming Courses And Tutorials.
- CPP Programming Courses And Tutorials.
- Python Courses and Tutorials.
- C program to decimal to octal number
- Convert decimal to binary number
- C program to decimal to binary using recursion and without using power operator
- Program to decimal to binary number using recursion
- C program to convert decimal to binary without using arithmetic operators.