Write a C program to input decimal number from user and convert to binary number system. How to convert from decimal number to binary number system in C. Algorithm to convert decimal to binary number system in C program.

**Example**

**Input**

Input decimal number: 112

**Output**

Binary number: 0111000

## Required knowledge

## Decimal number system

Decimal number system is a base 10 number system. Decimal number system uses only 10 symbols to represent all number i.e. 0123456789

## Binary number system

Binary number system is a base 2 number system. Binary number system uses only 2 symbols to represent all numbers i.e. 0 and1

## Algorithm to convert from decimal to binary

Algorithm Decimal to Binary conversionbegin:read(decimal);binary← 0;place← 1;rem← 0;while(decimal> 0) dobeginrem←decimal% 2;binary← (rem*place) +binary;place←place* 10;decimal←decimal/ 2;endwrite('Binary = 'binary)end

## Program to convert decimal to binary

/** * C program to convert from Decimal to Binary number system */ #include <stdio.h> int main() { long long decimal, tempDecimal, binary; int rem, place = 1; binary = 0; /* * Input decimal number from user */ printf("Enter any decimal number: "); scanf("%lld", &decimal); tempDecimal = decimal; /* * Decimal to binary conversion */ while(tempDecimal > 0) { rem = tempDecimal % 2; binary = (rem * place) + binary; tempDecimal /= 2; place *= 10; } printf("Decimal number = %lld\n", decimal); printf("Binary number = %lld", binary); return 0; }

**Note:** The above program converts the decimal to binary number only up to 18 binary bits. Use the below program to convert from decimal to binary number for a higher range.

## Program to convert decimal to binary more than 18 bits

/** * C program to convert from Decimal to Binary number system */ #include <stdio.h> #include <string.h> int main() { long decimal, tempDecimal; char binary[65]; int index = 0; /* * Input decimal number from user */ printf("Enter any decimal value : "); scanf("%ld", &decimal); /* Copy decimal value to temp variable */ tempDecimal = decimal; while(tempDecimal > 0) { binary[index] = (tempDecimal % 2) + '0'; tempDecimal /= 2; index++; } binary[index] = '\0'; /* Reverse the converted binary to get final binary result */ strrev(binary); printf("Decimal value = %ld\n", decimal); printf("Binary value of decimal = %s", binary); return 0; }

Advance your C skills by learning this program using other approach.

Enter any decimal value : 123 Decimal value = 123 Binary value of decimal = 1101111

Happy coding ;)

### Recommended posts

- Loop programming exercises and solutions in C.
- C program to convert Decimal to Octal number system.
- C program to convert Decimal to Hexadecimal number system.
- C program to convert Binary to Decimal number system.
- C program to convert Octal to Binary number system.
- C program to convert Hexadecimal to Binary number system.

go recursive ...

ReplyDelete/* decimal to binary */

void decimal_to_binary(int a)

{

int lsb;

if(a == 0)

return;

lsb = a & 1;

decimal_to_binary(a>>1);

printf("%d", lsb);

}

Thanks @meh for the short recursive approach. I will update it the with same.

Delete