/* Inter conversion of decimal,binary,hexadecimal */
/* Use "Turbo c" compiler (which comes with dosbox) to execute, other compiler may not have conio.h, math.h, delay() inbuilt */
#include<stdio.h>
#include<conio.h>
#include<math.h>
void Decimal2Binary();
void Decimal2Hexa();
void Binary2Decimal();
void Binary2Hexa();
void Hexa2Decimal();
void Hexa2Binary();
void main()
{
int choice;
clrscr();
printf("\n 1. Decimal to Binary \n 2. Decimal to Hexadecimal");
printf("\n 3. Binary to Decimal \n 4. Binary to Hexadecimal");
printf("\n 5. Hexadecimal to Decimal \n 6. Hexadecimal to Binary");
printf("\n 7. Exit \n\nEnter Your Choice : ");
scanf("%d",&choice);
clrscr();
switch(choice)
{
case 1 :
Decimal2Binary();
break;
case 2 :
Decimal2Hexa();
break;
case 3 :
Binary2Decimal();
break;
case 4 :
Binary2Hexa();
break;
case 5 :
Hexa2Decimal();
break;
case 6 :
Hexa2Binary();
break;
case 7 :
{
clrscr();
printf("\t\t Exiting in 3 seconds");
delay(3000);
exit(0);
}
default :
printf("\n Invalid Choice \n");
}
getch();
}
void Decimal2Binary()
{
int n,bin[100],i,j;
printf("\nEnter Decimal Number To Find It's Binary : ");
scanf("%d",&n);
printf("The Binary of %d is ",n);
for(i=0;n!=0;i++)
{
bin[i]=n%2;
n=n/2;
}
for(j=i-1;j>=0;j--)
{
printf("%d",bin[j]);
}
printf("\n");
}
void Decimal2Hexa()
{
int n,r[10],i;
printf("Enter Decimal Number to get its hexadecimal : ");
scanf("%d",&n);
for(i=0;n!=0;i++)
{
r[i]=n%16;
n=n/16;
}
i--;
for(;i>=0;i--)
{
if(r[i]==10)
printf("A");
else if(r[i]==11)
printf("B");
else if(r[i]==12)
printf("C");
else if(r[i]==13)
printf("D");
else if(r[i]==14)
printf("E");
else if(r[i]==15)
printf("F");
else
printf("%d",r[i]);
}
printf("\n");
}
void Binary2Decimal()
{
int bin,n,r,sum=0,i;
printf("Enter a Binary Number : ");
scanf("%d",&bin);
n=bin;
for(i=0;n!=0;i++)
{
r=n%10;
sum=sum+r*pow(2,i);
n=n/10;
}
printf("The equivalent number of %d is %d\n",bin,sum);
}
void Binary2Hexa()
{
/* here we will existing code of binary to decimal
and then decimal to hexa */
/* Binary to Decimal */
int bin,n,rem,r[10],sum=0,i;
printf("Enter a Binary Number : ");
scanf("%d",&bin);
n=bin;
for(i=0;n!=0;i++)
{
rem=n%10;
sum=sum+rem*pow(2,i);
n=n/10;
}
/* Decimal to Hexa */
n=sum;
for(i=0;n!=0;i++)
{
r[i]=n%16;
n=n/16;
}
i--;
printf("\nHexadecimal Equivalent : ");
for(;i>=0;i--)
{
if(r[i]==10)
printf("A");
else if(r[i]==11)
printf("B");
else if(r[i]==12)
printf("C");
else if(r[i]==13)
printf("D");
else if(r[i]==14)
printf("E");
else if(r[i]==15)
printf("F");
else
printf("%d",r[i]);
}
printf("\n");
}
void Hexa2Binary()
{
char hexa[20],i;
printf("\nEnter a Hexadecimal No : ");
scanf("%s",&hexa);
printf("\n Equivalent Binary : ");
for(i=0;hexa[i]!='\0';i++)
{
switch(hexa[i])
{
case '0':
printf("0000");
break;
case '1':
printf("0001");
break;
case '2':
printf("0010");
break;
case '3':
printf("0011");
break;
case '4':
printf("0100");
break;
case '5':
printf("0101");
break;
case '6':
printf("0110");
break;
case '7':
printf("0111");
break;
case '8':
printf("1000");
break;
case '9':
printf("1001");
break;
case 'A':
printf("1010");
break;
case 'B':
printf("1011");
break;
case 'C':
printf("1100");
break;
case 'D':
printf("1101");
break;
case 'E':
printf("1110");
break;
case 'F':
printf("1111");
break;
}
}
}
void Hexa2Decimal()
{
char hexa[20]="";
int i=0,j=0,len=0;
long int sum=0;
clrscr();
printf("\nEnter Hexadecimal number : ");
scanf("%s",&hexa);
len=strlen(hexa);
for(i=0,j=len-1;hexa[i]!='\0';i++,j--)
{
switch(hexa[i])
{
case '0' : {sum=sum+0; break;}
case '1' : {sum=sum+(1*(pow(16,j))); break;}
case '2' : {sum=sum+(2*(pow(16,j))); break;}
case '3' : {sum=sum+(3*(pow(16,j))); break;}
case '4' : {sum=sum+(4*(pow(16,j))); break;}
case '5' : {sum=sum+(5*(pow(16,j))); break;}
case '6' : {sum=sum+(6*(pow(16,j))); break;}
case '7' : {sum=sum+(7*(pow(16,j))); break;}
case '8' : {sum=sum+(8*(pow(16,j))); break;}
case '9' : {sum=sum+(9*(pow(16,j))); break;}
case 'A' : {sum=sum+(10*(pow(16,j))); break;}
case 'B' : {sum=sum+(11*(pow(16,j))); break;}
case 'C' : {sum=sum+(12*(pow(16,j))); break;}
case 'D' : {sum=sum+(13*(pow(16,j))); break;}
case 'E' : {sum=sum+(14*(pow(16,j))); break;}
case 'F' : {sum=sum+(15*(pow(16,j))); break;}
default : { printf("Error occured !!!\n Exiting in 3 sec");delay(3000);exit(0);}
}
}
printf("\nEquivalent Decimal : %ld",sum);
}
Output screens :
/* Use "Turbo c" compiler (which comes with dosbox) to execute, other compiler may not have conio.h, math.h, delay() inbuilt */
#include<stdio.h>
#include<conio.h>
#include<math.h>
void Decimal2Binary();
void Decimal2Hexa();
void Binary2Decimal();
void Binary2Hexa();
void Hexa2Decimal();
void Hexa2Binary();
void main()
{
int choice;
clrscr();
printf("\n 1. Decimal to Binary \n 2. Decimal to Hexadecimal");
printf("\n 3. Binary to Decimal \n 4. Binary to Hexadecimal");
printf("\n 5. Hexadecimal to Decimal \n 6. Hexadecimal to Binary");
printf("\n 7. Exit \n\nEnter Your Choice : ");
scanf("%d",&choice);
clrscr();
switch(choice)
{
case 1 :
Decimal2Binary();
break;
case 2 :
Decimal2Hexa();
break;
case 3 :
Binary2Decimal();
break;
case 4 :
Binary2Hexa();
break;
case 5 :
Hexa2Decimal();
break;
case 6 :
Hexa2Binary();
break;
case 7 :
{
clrscr();
printf("\t\t Exiting in 3 seconds");
delay(3000);
exit(0);
}
default :
printf("\n Invalid Choice \n");
}
getch();
}
void Decimal2Binary()
{
int n,bin[100],i,j;
printf("\nEnter Decimal Number To Find It's Binary : ");
scanf("%d",&n);
printf("The Binary of %d is ",n);
for(i=0;n!=0;i++)
{
bin[i]=n%2;
n=n/2;
}
for(j=i-1;j>=0;j--)
{
printf("%d",bin[j]);
}
printf("\n");
}
void Decimal2Hexa()
{
int n,r[10],i;
printf("Enter Decimal Number to get its hexadecimal : ");
scanf("%d",&n);
for(i=0;n!=0;i++)
{
r[i]=n%16;
n=n/16;
}
i--;
for(;i>=0;i--)
{
if(r[i]==10)
printf("A");
else if(r[i]==11)
printf("B");
else if(r[i]==12)
printf("C");
else if(r[i]==13)
printf("D");
else if(r[i]==14)
printf("E");
else if(r[i]==15)
printf("F");
else
printf("%d",r[i]);
}
printf("\n");
}
void Binary2Decimal()
{
int bin,n,r,sum=0,i;
printf("Enter a Binary Number : ");
scanf("%d",&bin);
n=bin;
for(i=0;n!=0;i++)
{
r=n%10;
sum=sum+r*pow(2,i);
n=n/10;
}
printf("The equivalent number of %d is %d\n",bin,sum);
}
void Binary2Hexa()
{
/* here we will existing code of binary to decimal
and then decimal to hexa */
/* Binary to Decimal */
int bin,n,rem,r[10],sum=0,i;
printf("Enter a Binary Number : ");
scanf("%d",&bin);
n=bin;
for(i=0;n!=0;i++)
{
rem=n%10;
sum=sum+rem*pow(2,i);
n=n/10;
}
/* Decimal to Hexa */
n=sum;
for(i=0;n!=0;i++)
{
r[i]=n%16;
n=n/16;
}
i--;
printf("\nHexadecimal Equivalent : ");
for(;i>=0;i--)
{
if(r[i]==10)
printf("A");
else if(r[i]==11)
printf("B");
else if(r[i]==12)
printf("C");
else if(r[i]==13)
printf("D");
else if(r[i]==14)
printf("E");
else if(r[i]==15)
printf("F");
else
printf("%d",r[i]);
}
printf("\n");
}
void Hexa2Binary()
{
char hexa[20],i;
printf("\nEnter a Hexadecimal No : ");
scanf("%s",&hexa);
printf("\n Equivalent Binary : ");
for(i=0;hexa[i]!='\0';i++)
{
switch(hexa[i])
{
case '0':
printf("0000");
break;
case '1':
printf("0001");
break;
case '2':
printf("0010");
break;
case '3':
printf("0011");
break;
case '4':
printf("0100");
break;
case '5':
printf("0101");
break;
case '6':
printf("0110");
break;
case '7':
printf("0111");
break;
case '8':
printf("1000");
break;
case '9':
printf("1001");
break;
case 'A':
printf("1010");
break;
case 'B':
printf("1011");
break;
case 'C':
printf("1100");
break;
case 'D':
printf("1101");
break;
case 'E':
printf("1110");
break;
case 'F':
printf("1111");
break;
}
}
}
void Hexa2Decimal()
{
char hexa[20]="";
int i=0,j=0,len=0;
long int sum=0;
clrscr();
printf("\nEnter Hexadecimal number : ");
scanf("%s",&hexa);
len=strlen(hexa);
for(i=0,j=len-1;hexa[i]!='\0';i++,j--)
{
switch(hexa[i])
{
case '0' : {sum=sum+0; break;}
case '1' : {sum=sum+(1*(pow(16,j))); break;}
case '2' : {sum=sum+(2*(pow(16,j))); break;}
case '3' : {sum=sum+(3*(pow(16,j))); break;}
case '4' : {sum=sum+(4*(pow(16,j))); break;}
case '5' : {sum=sum+(5*(pow(16,j))); break;}
case '6' : {sum=sum+(6*(pow(16,j))); break;}
case '7' : {sum=sum+(7*(pow(16,j))); break;}
case '8' : {sum=sum+(8*(pow(16,j))); break;}
case '9' : {sum=sum+(9*(pow(16,j))); break;}
case 'A' : {sum=sum+(10*(pow(16,j))); break;}
case 'B' : {sum=sum+(11*(pow(16,j))); break;}
case 'C' : {sum=sum+(12*(pow(16,j))); break;}
case 'D' : {sum=sum+(13*(pow(16,j))); break;}
case 'E' : {sum=sum+(14*(pow(16,j))); break;}
case 'F' : {sum=sum+(15*(pow(16,j))); break;}
default : { printf("Error occured !!!\n Exiting in 3 sec");delay(3000);exit(0);}
}
}
printf("\nEquivalent Decimal : %ld",sum);
}
Output screens :
This comment has been removed by the author.
ReplyDelete