Sunday, December 12, 2010

Binary to Hexadecimal And Hexadecimal to Binary Conversion

//PROGRAM TO CONVERT BINARY TO HEXADECIMAL AND VICE-VERSA
#include
#include
#include
#define SIZE 20

int binary_to_decimal(int);
void decimal_to_binary(int);
void binary_to_hexa(int);
void hexa_to_binary(char []);
void main()
{
int ch=0,num=0;
char hexa[10];
clrscr();
do
{
printf("\n\n------------------Menu----------------------");
printf("\n1_Binary to Hexadecimal");
printf("\n2_Hexadecimal to Binary");
printf("\n3_Exit from program");
printf("\n\nEnter your choice<1-3>:");
scanf("%d",&ch);
switch(ch)
{
case 1: // Binary to Hexadecimal
printf("\nEnter the binary number:");
scanf("%d",&num);
printf("\nThe Hexadecimal equivalent of %d is ",num);
binary_to_hexa(num);
break;
case 2: // Hexadecimal to Binary
printf("\nEnter the hexadecimal number:");
scanf("%s",&hexa);
printf("\nThe Binary equivalent of %s is ",hexa);
hexa_to_binary(hexa);
break;
case 3: // Exit
exit(0);
break;
default:
printf("\nWrong choice!!!!!!");
break;
}
}
while(ch!=3);
}

int binary_to_decimal(int num)
{
int i=0,sum=0;
while(num!=0)
{
sum=sum+(num%10)*pow(2,i++);
num/=10;
}
return sum;
}

void decimal_to_binary(int num)
{
int array[SIZE],i=0;
while(num!=0)
{
array[i++]=num%2;
num/=2;
}
for(i=i-1;i>=0;i--)
printf("%d",array[i]);
}

void binary_to_hexa(int num)
{
int array[SIZE],i=0;
num=binary_to_decimal(num);
if(num==0)
{
array[i++]=0;
}
while(num!=0)
{
array[i++]=num%16;
num/=16;
}
for(i=i-1;i>=0;i--)
{
if(array[i]>=10&&array[i]<=15) printf("%c",array[i]+55); else printf("%d",array[i]); } } void hexa_to_binary(char s[]) { int a[SIZE],i,dn=0,j=0; for(i=0;s[i]!=NULL;i++) { if(s[i]<=57&&s[i]>=48)
a[i]=s[i]-48;
else if(s[i]>=65&&s[i]<=70) a[i]=s[i]-55; else { printf("Wrong Input"); return; } } for(;--i>=0;)
{
dn+=a[i]*pow(16,j++);
}
decimal_to_binary(dn);
}

No comments:

Post a Comment