C Program to Convert Decimal Numbers to Binary Numbers

  • Write a C program to convert a decimal number to binary number
  • Write a C program to convert a binary number(base 2) to decimal number(base 10)

Decimal number system is a base 10 number system using digits for 0 to 9 whereas binary number system is base 2 and uses 0 and 1. Given a decimal number as input from user we have to print the binary equivalent of input number.

For Example

100 in Decimal is equivalent to 1100100 in Binary number system.

Algorithm to convert Decimal to Binary number

  • Divide the input decimal number by 2 and store the remainder.
  • Store the quotient back to the input number variable.
  • Repeat this process till quotient becomes zero.
  • Equivalent binary number will be the remainders in above process in reverse order.
For Example

Suppose input decimal number is 13
Step 1. 13/2 , Remainder = 1, Quotient = 6
Step 2. 6/2 , Remainder = 0, Quotient = 3
Step 3. 3/2 , Remainder = 1, Quotient = 1
Step 4. 1/2 , Remainder = 1, Quotient = 0
Now, the Binary equivalent of 13 is the remainders in reverse order : 1101

C program to convert decimal number to binary

C Program to Convert Decimal Numbers to Binary Numbers

/* 
* C program to convert decimal numbers to binary numbers
*/
 
#include <stdio.h>
#include <conio.h>
 
long decimalToBinary(long n);
int main() {
    long decimal;
    printf("Enter a decimal number\n");
    scanf("%ld", &decimal);
    printf("Binary number of %ld is %ld", decimal, decimalToBinary(decimal));
     
 getch();
    return 0;
}
 
/* Function to convert a decinal number to binary number */
long decimalToBinary(long n) {
    int remainder; 
 long binary = 0, i = 1;
  
    while(n != 0) {
        remainder = n%2;
        n = n/2;
        binary= binary + (remainder*i);
        i = i*10;
    }
    return binary;
}

Program Output

Enter a decimal number
25
Binary number of 25 is 11001
Enter a decimal number
64
Binary number of 64 is 1000000

C program to convert binary number to decimal

C program to convert binary number to decimal

/* 
* C program to convert binary numbers to decimal numbers
*/
 
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
long binaryToDecimal(long n);
int main() {
    long binary;
    printf("Enter a binary number\n");
    scanf("%ld", &binary);
    printf("Decimal number of %ld is %ld", binary, binaryToDecimal(binary));
     
 getch();
    return 0;
}
 
/* Function to convert a binary number to decimal number */
long binaryToDecimal(long n) {
 int remainder; 
    long decimal = 0, i=0;
    while(n != 0) {
        remainder = n%10;
        n = n/10;
        decimal = decimal + (remainder*pow(2,i));
        ++i;
    }
    return decimal;
}
</math.h></conio.h></stdio.h>

Program Output

Enter a binary number
11001
Decimal number of 11001 is 25