Decimal Number to Binary Conversion Program

Please read Operation
on Bits and Bitwise Operators
and Right/Left
Bit Shift Operators
if you haven’t already. This post is based
on those articles.


We’ll be using the following operators and the respective properties
for decimal to binary conversion:




  1. AND (&) Operator from the article Operation
    on Bits and Bitwise Operators
    : Its property to be able to check
    whether a particular bit is ON (1) or OFF (0).




  2. Left Bit Shift Operator (<<) from the article Right/Left
    Bit Shift Operators
    : Its property to shift bits (of byte(s)) to
    desired number of places to the left.




After making you guys familiar with the two things above, the program will
be easier to understand.



// Example Program to convert decimal number
// to binary equivalent.
// --------
// Function: We have defined a function 'showbits()'
// It shows the bit structure of the
// Short Int(2 Bytes) passed as argument
#include<stdio.h>

// prototype
void showbits(short int);

//defined
void showbits(short int dec_num)
{
short int loop, bit, and_mask;

for(loop=15; loop>=0; loop--)
{
and_mask=1<<loop;
bit=dec_num&and_mask;


if(bit==0) printf("0");
else printf("1");
}
printf("\n");
}

//main code to show how showbits()
// is working
void main()
{
short int dec;

printf("Enter a decimal number:");
scanf("%d",&dec);

showbits(dec);
}


I’m leaving its working part as an exercise for you guys.


Ha-ha! Not happy?


Ok, I’ll give you a hint, in the line…


and_mask = 1 >> loop;


Binary of 1 is 0000000000000001 (in two byte format) which is shifted 15 bits
to the left, in the first iteration.


Related Articles:


Check out this stream