# C program to convert Decimal to Binary number system

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 program. Logic to convert decimal to binary number system in C programming.

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 and 1

## Algorithm to convert from decimal to binary

```Algorithm Decimal to Binary conversion
begin:
binary ← 0; place ← 1; rem ← 0;
while (decimal > 0) do
begin
rem ← decimal % 2;
binary ← (rem * place) + binary;
place ← place * 10;
decimal ← decimal / 2;
end
write('Binary = ' binary)
end```

## Program to convert decimal to binary number system

``````/**
* 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;
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;
}``````

Output

```Enter any decimal value : 112
Decimal value = 112
Binary value of decimal = 0111000```

Happy coding 😉 