
Problem Statement: Given a Binary Number convert it to its equivalent decimal number. Binary to Decimal in C.
Examples:
Example 1: Input: N = 101 Output: 5 Example 2: Input: N = 1000 Output: 8
Disclaimer: Don’t jump directly to the solution, try it out yourself first.
Approach:
Intuition: The idea is to add the appropriate power of 2 to the final answer, whenever the bit is set.
- Given a binary number.
- Declare a variable to store the decimal number and initialize with 0 say dec = 0
- Take the remainder of the binary number dividing by 10 and store it in variable rem.
- Now dec = dec + rem * base, base starts with base = 1 and increases after each iteration base = base*2.
- And reduce the binary number by dividing it by 10 after each iteration.

Code:
C Program
#include<stdio.h>
int main()
{
int N = 101;
int num = N;
int dec=0;
int base = 1;
while(N!=0)
{
int rem = N%10;
dec = dec+rem*base;
base = base*2;
N = N/10;
}
printf("The decimal equivalent of %d is %d",num,dec);
}
Output: The decimal equivalent of 101 is 5
Time Complexity: O(n), where n is the length of the number
Space Complexity: O(1).
Special thanks to Subhrajit Das for contributing to this article on takeUforward. If you also wish to share your knowledge with the takeUforward fam, please check out this article