Convert Binary to Decimal in C Last Updated : 02 Apr, 2025 Comments Improve Suggest changes Like Article Like Report In this article, we will learn how to write a C program to convert the given binary number into an equivalent decimal number. Binary numbers are expressed in base 2 ( 0, 1 ) and decimal numbers are expressed in base 10 ( 0-9 ).Algorithm to Convert Binary Numbers to DecimalThe idea is to extract the last digit of the binary number by performing the modulo operation ( % ) and store it in a variable last_digit and remove the last digit from the binary number by dividing by 10.Update the decimal value by multiplying last_digit with the current base value and adding it to dec.Update the base value by multiplying it by 2 to represent the next power of 2 for the next digit.Repeat these steps until are digits of the binary number are processed.Return the variable dec that stores the decimal value.The below diagram explains how to convert ( 1010 ) to an equivalent decimal value:C Program to Convert Binary Number to Decimal C #include <stdio.h> int binaryToDecimal(int n) { int dec = 0; // Initializing base value to 1, i.e 2^0 int base = 1; // Extracting each digits of binary number // and adding corresponding exponent of 2 while (n) { int last_digit = n % 10; n = n / 10; // Multiplying the last digit with the base value // and adding it to the decimal value dec += last_digit * base; // Updating the base value by multiplying it by 2 base = base * 2; } return dec; } int main() { int num = 10101001; printf("%d", binaryToDecimal(num)); return 0; } Output169 Time complexity: O(d), where d is the number of digits in binary number.Auxiliary Space: O(1)In the above program, we represented a binary number as integer value with base 10 as binary numbers are not directly supported by C language. One more common representation of binary number is in the form of strings. If the binary number is in the form of string, then the above program can be modified as shown: C #include <stdio.h> #include <string.h> int binaryToDecimal(const char* binary) { int dec = 0; // Get length of binary string int length = strlen(binary); // Initializing base value to 1, i.e 2^0 int base = 1; // Process from right to left (least significant to // most significant bit) for (int i = length - 1; i >= 0; i--) { // If current bit is '1' if (binary[i] == '1') { dec += base; } // Update base for next position (multiply by 2) base = base * 2; } return dec; } int main() { const char* binary = "10101001"; printf("%d\n", binaryToDecimal(binary)); return 0; } Output169 Time complexity: O(d), where d is the number of digits in binary number.Auxiliary Space: O(1)Refer to the complete article Program for Binary To Decimal Conversion for more details! Comment More infoAdvertise with us Next Article Convert Binary to Decimal in C kartik Follow Improve Article Tags : C Programs C Language C Conversion Programs Similar Reads C Programming Language Tutorial C is a general-purpose mid-level programming language developed by Dennis M. Ritchie at Bell Laboratories in 1972. It was initially used for the development of UNIX operating system, but it later became popular for a wide range of applications. Today, C remains one of the top three most widely used 5 min read Dynamic Memory Allocation in C using malloc(), calloc(), free() and realloc() In C, a variable defined in a function is stored in the stack memory. The requirement of this memory is that it needs to know the size of the data to memory at compile time (before the program runs). Also, once defined, we can neither change the size nor completely delete the memory.To resolve this, 9 min read Data Types in C Each variable in C has an associated data type. It specifies the type of data that the variable can store like integer, character, floating, double, etc.Example:C++int number;The above statement declares a variable with name number that can store integer values.C is a statically type language where 5 min read C Language Introduction C is a general-purpose procedural programming language initially developed by Dennis Ritchie in 1972 at Bell Laboratories of AT&T Labs. It was mainly created as a system programming language to write the UNIX operating system.Main features of CWhy Learn C?C is considered mother of all programmin 6 min read C Arrays An array in C is a fixed-size collection of similar data items stored in contiguous memory locations. It can be used to store the collection of primitive data types such as int, char, float, etc., as well as derived and user-defined data types such as pointers, structures, etc. Creating an Array in 7 min read C Pointers A pointer is a variable that stores the memory address of another variable. Instead of holding a direct value, it has the address where the value is stored in memory. This allows us to manipulate the data stored at a specific memory location without actually using its variable. It is the backbone of 9 min read C Programs To learn anything effectively, practicing and solving problems is essential. To help you master C programming, we have compiled over 100 C programming examples across various categories, including basic C programs, Fibonacci series, strings, arrays, base conversions, pattern printing, pointers, and 8 min read Basics of File Handling in C File handling in C is the process in which we create, open, read, write, and close operations on a file. C language provides different functions such as fopen(), fwrite(), fread(), fseek(), fprintf(), etc. to perform input, output, and many different C file operations in our program.Need of File Han 13 min read Operators in C In C language, operators are symbols that represent some kind of operations to be performed. They are the basic components of the C programming. In this article, we will learn about all the operators in C with examples.What is an Operator in C?A C operator can be defined as the symbol that helps us 11 min read Bitwise Operators in C In C, bitwise operators are used to perform operations directly on the binary representations of numbers. These operators work by manipulating individual bits (0s and 1s) in a number.The following 6 operators are bitwise operators (also known as bit operators as they work at the bit-level). They are 6 min read Like