C Program to convert a binary number into its equivalent Decimal. In binary number system or base-2 system numeric valuer are represented by using two different symbols 0 and 1. The binary number system is a positional notation with a radix of 2.
Read more here: What are binary, octal, and hexadecimal notation?
This program converts a given base-2 number to it’s decimal equivalent (or base-10 representation).
The Program
#include<stdio.h> | |
/* | |
* Function to convert a given binary number to | |
* its decimal equivalent. | |
*/ | |
int binary_to_decimal(int num) { | |
int rem, base = 1, decimal_number = 0; | |
while( num > 0) { | |
rem = num % 10; | |
if((rem == 0) || (rem == 1)) { | |
decimal_number = decimal_number + rem * base; | |
num = num / 10 ; | |
base = base * 2; | |
} else { | |
return -1; // Invalid binary number | |
} | |
} | |
return decimal_number; | |
} | |
int main() { | |
long int binary_number, decimal_number; | |
printf("Enter any binary number : "); | |
scanf("%ld", &binary_number); | |
decimal_number = binary_to_decimal(binary_number); | |
if(decimal_number != -1) { | |
printf("The decimal equivalent value of binary %ld is: %ld", | |
binary_number, decimal_number); | |
} else { | |
printf("\nPlease enter a valid binary number!"); | |
} | |
return 0; | |
} |
Sample Output
Related Programs
- C program to convert a Binary number into its equivalent Decimal, Octal and Hexadecimal numbers
- C program to find the 2’s complement of a binary number
- C Program to convert a given decimal number into its binary equivalent
Edit1: 21st August 2017
- Added links to related programs
- Added a screenshot of sample output
- Moved program to it’s own gist.
To get regular updates on new C programs, you can Follow @c_program.
You can discuss these programs on our Facebook Page.
Like to get updates right inside your feed reader? Grab our feed!