Sunday, July 22, 2012

16 Bit BIN - HEX Converter in C


#include
#include
void hex16(char bin[16]);

int main()
{
char bin[16];
char hex[4];
printf("Enter 16 digit binary number : ");
scanf("%s", &bin);
hex16(bin);
return 0;
}

void hex16(char bin[16])
{
int i,k,j,dec1;
char hex[4];
int dec[4];
dec1=0;
j=0;
//printf("Entered 16 digit number : %s", bin);
for(i=0;i<4;i++)
{
dec[dec1]=0;
for(k=0;k<4;k++)
{
printf("%c",bin[j]);
if(bin[j]=='1')
{
switch (k)
{
case 0:
dec[dec1]=dec[dec1] + 8;
break;
case 1:
dec[dec1]=dec[dec1] + 4;
break;
case 2:
dec[dec1]=dec[dec1] + 2;
break;
case 3:
dec[dec1]=dec[dec1] + 1;
break;
}
}
j++;
}
printf(" : %d", dec[dec1]);
switch(dec[dec1])
{
case 0:
hex[i]='0';
break;
case 1:
hex[i]='1';
break;
case 2:
hex[i]='2';
break;
case 3:
hex[i]='3';
break;
case 4:
hex[i]='4';
break;
case 5:
hex[i]='5';
break;
case 6:
hex[i]='6';
break;
case 7:
hex[i]='7';
break;
case 8:
hex[i]='8';
break;
case 9:
hex[i]='9';
break;
case 10:
hex[i]='A';
break;
case 11:
hex[i]='B';
break;
case 12:
hex[i]='C';
break;
case 13:
hex[i]='D';
break;
case 14:
hex[i]='E';
break;
case 15:
hex[i]='F';
break;
}
printf("\n");
dec1++;
}
printf("Final Hex : %s", hex);
}

Output

Enter 16 digit binary number : 1100111100001010
1100 : 12
1111 : 15
0000 : 0
1010 : 10
Final Hex : CF0A

Note - Code is written in DevC++5.2.

No comments: