Write a program that reads a decimal value and converts it to binary using binary operators.
Difficulty level
This exercise is mostly suitable for students
#include <stdio.h>
#include <conio.h>
void main ()
{
int M, u;
int counter=0;
printf("Enter an decimal integer: ");
scanf("%d", &M);
printf("In binary : ");
/* we counts least significant bit */
u=M;
while ((u&1)!=1)
{
u=u>>1;
counter++;
}
/* Necessary to keep M value for the M%2 test */
u=M;
/* Reading from left to right : we place ourselves on the 1st
* non zero most significant bit */
while (u>0) u=u<<1;
/*Now we show the bits from left to right */
while (u!=0)
{
if (u<0)
printf("%c",'1');
else
printf("%c",'0');
u=u<<1;
}
/* In the case where M is even, you have to take into account its
* least significant bits of zeros */
if (M%2==0)
while (counter !=0)
{
printf("%c",'0');
counter--;
}
putchar('\n');
getch();
}
Back to the list of exercises
Looking for a more challenging exercise, try this one !!
UVA 10009 - All Roads Lead Where