# Decimal to binary conversion

Decimal to binary conversion - C Programming - C program to convert decimal to binary: c language code to convert an integer from decimal number system

C program to convert decimal to binary: c language code to convert an integer from decimal number system(base-10) to binary number system(base-2). Size of integer is assumed to be 32 bits. We use bitwise operators to perform the desired task. We right shift the original number by 31, 30, 29, …, 1, 0 bits using a loop and bitwise AND the number obtained with 1(one), if the result is 1 then that bit is 1 otherwise it is 0(zero).

## C programming code

``````#include <stdio.h>

int main()
{
int n, c, k;

printf("Enter an integer in decimal number system\n");
scanf("%d", &n);

printf("%d in binary number system is:\n", n);

for (c = 31; c >= 0; c--)
{
k = n >> c;

if (k & 1)
printf("1");
else
printf("0");
}

printf("\n");

return 0;
}``````

Output of program:

Above code only prints binary of integer, but we may wish to perform operations on binary so in the code below we are storing the binary in a string. We create a function which returns a pointer to string which is the binary of the number passed as argument to the function.

## C code to store decimal to binary conversion in a string

``````#include <stdio.h>
#include <stdlib.h>

char *decimal_to_binary(int);

main()
{
int n, c, k;
char *pointer;

printf("Enter an integer in decimal number system\n");
scanf("%d",&n);

pointer = decimal_to_binary(n);
printf("Binary string of %d is: %s\n", n, t);

free(pointer);

return 0;
}

char *decimal_to_binary(int n)
{
int c, d, count;
char *pointer;

count = 0;
pointer = (char*)malloc(32+1);

if ( pointer == NULL )
exit(EXIT_FAILURE);

for ( c = 31 ; c >= 0 ; c-- )
{
d = n >> c;

if ( d & 1 )
*(pointer+count) = 1 + '0';
else
*(pointer+count) = 0 + '0';

count++;
}
*(pointer+count) = '\0';

return  pointer;
}``````

Memory is allocated dynamically because we can’t return a pointer to a local variable (character array in this case). If we return a pointer to local variable then program may crash or we get incorrect result.

#### Wikitechy Editor

Wikitechy Founder, Author, International Speaker, and Job Consultant. My role as the CEO of Wikitechy, I help businesses build their next generation digital platforms and help with their product innovation and growth strategy. I'm a frequent speaker at tech conferences and events.