Decimal to binary in C programming: C program to convert an integer from decimal number system (base-10) to binary number system (base-2). Size of an integer is assumed to be 32 bits. We will use the bitwise operator 'AND' to perform the desired task. We right shift the original number by 31, 30, 29, ..., 1, 0 bits using a for 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 program to convert decimal number to binary number and binary number to decimal number with explanation and sample input output. C Programming language tutorial, Sample C programs, C Programs, Java Program, Interview Questions, C graphics programming, Data Structures, Binary Tree, Linked List, Stack, Queue, Header files, Design Patterns in.
C program to convert decimal to binary
#include <stdio.h>
int main() { int n, c, k;
printf('Enter an integer in decimal number systemn'); 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');
return0; }
Output of the program:
Download Decimal binary program.
This code only prints binary of an integer, but we may wish to perform operations on binary, so in the program 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 an 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 systemn'); scanf('%d',&n); pointer = decimal_to_binary(n); printf('Binary string of %d is: %sn', n, t); free(pointer); return0; }
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; }
The 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 a local variable, then the program may crash, or we get an incorrect result.