Binary To Decimal Conversion | C Program
Binary to Decimal in C
Let’s look at Binary to Decimal in C, we will discuss the C program for binary to decimal conversion. A decimal number can be attained by multiplying every digit of binary digit with a power of 2 and adding each multiplication outcome. The power of the integer starts from 0 and counts to n-1 where n is assumed as the overall digits of integers in binary numbers.
Ex:- (10110)2 =
1 * 24 + 0 * 23 + 1 * 22 + 1 * 21 + 0 * 20 16 + 0 + 4 + 2 + 0 = (22)10
Working:-
Binary to Decimal in C
For user input num
- Initialize i = 0, decimal = 0
- Extract the last digit (digit = num% 10)
- Calculate decimal equivalent of this digit
- Add it to decimal variable
- decimal += digit * pow(2,i);
- Reduce the number (num /= 10
- increment i value
C Program to convert Binary to Decimal Number:
Code
Run
// C Program to convert binary to decimal
#include<stdio.h>
#include<math.h>
// function to convert binary to decimal
int convert(long long num)
{
int i = 0, decimal= 0;
//converting binary to decimal
while (num!=0)
{
int digit = num % 10;
decimal += digit * pow(2,i);
num /= 10;
i++;
}
return decimal;
}
// main program
int main()
{
// long used rather than int to store large values
// Ex : int wont store 111111111111 (12 digits) as
// limit for int is 2147483647 (10 digits)
long long binary;
printf("Enter binary number: ");
scanf("%lld", &binary);
printf("%lld", convert(binary));
return 0;
}
Output
Enter binary number: 101
5
Program for Decimal to Binary
Let us look at the program and how to convert manually the same below –
Code Decimal to Binary
Run
#include<stdio.h>
void getBinary(int dec)
{
// since, we may need to store large binary values using long long
long long binary = 0;
int rem, i = 1;
while(dec != 0)
{
rem = dec % 2;
dec /= 2;
binary += rem * i;
// moving to next position ex: units -> tens
i *= 10;
}
printf("%lld",binary);
}
int main()
{
int dec = 19;
getBinary(dec);
return 0;
}
Output
10011
Prime Course Trailer
Related Banners
Get PrepInsta Prime & get Access to all 200+ courses offered by PrepInsta in One Subscription

#include
#include
int main()
{
int i=0.s=0,r;
long long n;
printf(“Enter binary number :”);
scanf(“%lld”,&n);
while(n>0)
{
r=n%10;
s=s+r*pow(2,i);
n=n/10;
i++;
}
printf(“Decimal number : %lld”,s);
}
There is one mistake in Binary to Decimal
the last Printf statement in the main() should be either typecasted or instead of putting %lld you should put %d otherwise you’re getting a garbage value as a Decimal…..
so replace last print from main() by
printf(“Decimal is : %lld”,(long long)convert(binary)); //Typecasted int into long long
OR
printf(“%d”, convert(binary));
there is no invalid state for invalid binary number
#include
int main()
{
int num, binary_val, decimal_val = 0, base = 1, rem,flag=0;
printf(“Insert a binary num (1s and 0s) \n”);
scanf(“%d”, &num); /* maximum five digits */
binary_val = num;
while (num > 0)
{
rem = num % 10;
if (rem==1 || rem==0)
{
decimal_val = decimal_val + rem * base;
//num/=10;
num = num / 10 ;
//base*=2;
base = base * 2;
}
else
{
printf(“Invalid number”);
flag=1;
break;
}
}
if(flag==0)
{
//display binary number
printf(“The Binary num is = %d \n”, binary_val);
//display decimal number
printf(“Its decimal equivalent is = %d \n”, decimal_val);
return 0;
}
}