Get free ebooK with 50 must do coding Question for Product Based Companies solved
Fill the details & get ebook over email
Thank You!
We have sent the Ebook on 50 Must Do Coding Questions for Product Based Companies Solved over your email. All the best!

C Program to Convert Binary Number to Decimal Number

Last Updated on April 12, 2023 by Prepbytes

In Programming, the conversion of Binary Numbers into Decimal Numbers is an essential task that makes it in a human-readable format. Binary numbers are the base – 2 number system numerals, which are generally represented by just two digits/symbols: 0 (Zero) and 1 (One), while decimal numbers are the base – 10 number system numbers, which are represented by numbers formed by digits in the range of 0 – 9.

Let’s discuss first, what is conversion from binary to decimal in C.

What is Conversion from Binary To Decimal In C?

Conversion from binary to decimal in C means the user needs to convert a number that is in binary form to its value which will be in decimal form.
Take a break, lets discuss what are binary and decimal numbers then we will see the approaches to convert binary to decimal in c.

What is a Binary Number?

A binary number is defined as the number that is expressed in the binary system or base 2 numeral system. It describes numeric values by two separate symbols; 1 (one) and 0 (zero).

Examples of Binary Numbers: 0101010, 111, 0010, etc.

What is a Decimal Number?

Decimal is a term that describes the base-10 number system, the most commonly used number system. The decimal number system consists of ten single-digit numbers: 0, 1, 2, 3, 4, 5, 6, 7, 8, and 9. The number after 9 is 10. The number after 19 is 20 and so forth.

Examples of Decimal Numbers: 1415, 1616, 472, etc.

Examples demonstrating Binary to Decimal in C

The following examples demonstrates the conversion of binary to decimal.

Example 1:

Input: 111
Output: 7
Explanation: (122) + (121)+(1*20) = 4 + 2 + 1 = 7

Example 2:

Input: 1010
Output: 10

Example 3:

Input: 110
Output: 6

Approach 1: Conversion of Binary To Decimal In C using For Loop

In this approach, we are using the for a loop to convert binary to decimal in C language.

For Example:
If the binary number is 111.
dec_value = 1(2^2) + 1(2^1) + 1*(2^0) = 7

Algorithm of Binary To Decimal In C using for loop

  1. Firstly, initialize the decimal_num variable with the value 0, add the binary number in the bin_num variable, and initialize rem.
  2. Start a for loop with condition i = 0, bin_num != 0, ++i.
  3. In the loop block,
    • Update the rem value to bin_num % 10.
    • Change the value of bin_num with bin_num / 10.
    • Atlast change the value of decimal_num with decimal_num + (rem) * (pow(2, i)).
  4. At the end of the for loop, print the decimal_num variable, which has the value of the decimal number of the given binary number.

Code Implementation of For Loop approach for converting of Binary To Decimal In C

#include <stdio.h>
#include <math.h> 
int main()  
{  
    int i, bin_num, decimal_num = 0, rem;  
    bin_num = 111;
    for (i = 0; bin_num != 0; ++i)  
    {  
        rem = bin_num % 10;  
        bin_num = bin_num / 10;  
        decimal_num = decimal_num + (rem) * ( pow (2, i));  
          
    }  
    printf ("\n Decimal Number of given binary number: %d", decimal_num);  
    return 0;  
}  

Time Complexity of C program to convert binary to decimal: The time complexity of this implementation of the conversion of binary to decimal in C language is O(logN).

Space Complexity of C program to convert binary to decimal: The space complexity of this implementation of the conversion of binary to decimal in C language is O(1).

Approach 2: Conversion of Binary To Decimal In C using Recursion

In this approach, we are using the recursive function to convert binary to decimal in C. BinarytoDecimal(strBinary, length) takes the input string and its size, and for each character convert it to decimal and multiply it with 2i. Add previous results to it.

Algorithm for the conversion of Binary To Decimal In C using recursion:

T1. ake the input string strBinary[] containing a binary number.

  1. Calculate its length using strlen(strBinary).
  2. Function BinarytoDecimal(strBinary, length) takes input and returns the number calculated using a recursive approach.
  3. If we are at the last character which is LSB, then return its decimal as it will be the same. (multiplied by 1 i.e 20 )
  4. Otherwise set temp=binary[i] – ‘0’. It’s a decimal value.
  5. Now multiply temp with 2len-i-1 using temp << len – i – 1.
  6. Add the result of other digits to temp using temp = temp + BinarytoDecimal(binary, len, i + 1).
  7. At the end of the recursion return temp.
  8. Print the calculated decimal in the main.

Code Implementation of Recursive approach for converting Binary to Decimal in C:

#include 
#include 
int BinarytoDecimal(char binary[],int len, int i){
   if (i == len-1)
   return (binary[i] - '0');

   int temp=binary[i]-'0';
   temp=temp<
						 

Time Complexity of C program to convert binary to decimal: The time complexity of this implementation of converting a binary number into a decimal number is O(logN).

Space Complexity of C program to convert binary to decimal: The space complexity of this implementation of converting a binary number into a decimal number is O(1).

Approach 3: Conversion of Binary to Decimal in C using Function

Let’s Discuss the algorithm for converting binary to decimal in C language.

  1. A binary number is stored in the bin_num variable, and one other variable dec_num is initialized for storing the decimal number.
  2. BinaryTodecimal function will be called and bin_num is passed in it.
  3. In the function, decimal_num with 0, temp with 0, and rem are initialized.
  4. Then a while loop is started with the condition bin_num != 0.
  5. Inside the loop, the following steps will be done:
    • Change the value of rem to bin_num % 10.
    • Change the value of bin_num to bin_num / 10.
    • Change the value of decimal_num to decimal_num + rem * pow( 2, temp).
    • Change the value of temp to temp++.
  6. At last return the decimal_num variable.

Code Implementation for converting Binary to Decimal in C using Function:

#include <stdio.h>  

int binaryTodecimal(int bin_num);  
int main()  
{  
    int bin_num, dec_num;  
    bin_num = 111;
      
    dec_num = binaryTodecimal (bin_num); 
    printf (" Conversion of the binary number to decimal number is %d", dec_num);  
    return 0;
}  
  
int binaryTodecimal( int bin_num)  
{  
    int decimal_num = 0, temp = 0, rem;  
    while (bin_num != 0)  
    {  
        rem = bin_num % 10;  
        bin_num = bin_num / 10;  
        decimal_num = decimal_num + rem * pow( 2, temp);  
        temp++;  
    }  
    return decimal_num;  
}  

Time Complexity of C program to convert Binary to Decimal: The time complexity of this implementation of converting a binary number into a decimal number is O(logN).

Space Complexity of C program to convert Binary to Decimal: The space complexity of this implementation of converting a binary number into a decimal number is O(1).

Conclusion
This blog taught us the most efficient and different ways to convert binary to decimal in C program. Conversion from binary to decimal in C language is not a difficult task, you just have to figure out what is decimal and binary numbers and then have to think about the logic to convert binary to decimal in C. We hope this article clears all your doubts and enhances your knowledge.

Frequently Asked Questions (FAQs)

Here are some Frequently Asked Questions on “How to Convert Binary to Decimal Program in C”.

Ques 1. How to check if the binary number is valid in the C program?
Ans. We can check if the binary number is valid by iterating through the characters of the input string that each digit is either 0 or 1.

Ques 2. Can we use bitwise operators to convert a binary number to decimal in C?
Ans. Yes, we can use bitwise operators to extract the binary digits and multiply them by the appropriate power of 2 to get the decimal value. However, this method can be more complex and less intuitive than the loop method described above.

Ques 3. Can we use a recursive function to convert binary to decimal in C?
Ans. Yes, we can also use the recursive approach to convert binary to decimal in C as discussed above in the article.

Other C Programs
C program to calculate percentage of 5 subjects
C program to add two numbers
C program to convert celsius to fahrenheit
C program to convert infix to postfix
C program to find area of circle
C program to find roots of quadratic equation
C program to reverse a number
C program for merge sort for linked lists
C program for performing bubble sort on linked list
C program to reverse a linked list

Leave a Reply

Your email address will not be published. Required fields are marked *