## INDEX

### Hexadecimal to binary conversion in c

C program for hexadecimal to binary conversion

#include<stdio.h>
#define MAX 1000

int main(){
long int i=0;

printf("\nEquivalent binary value: ");
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;
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;
}
i++;
}

return 0;
}

Sample output:

Equivalent binary value: 0010101011010101

Algorithm:

To convert or change the hexadecimal number to binary number replace the each octal digits by a binary number using hexadecimal to binary chart.

 Hexadecimal Binary 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 A 1010 B 1011 C 1100 D 1101 E 1110 F 1111

For example we want to convert or change hexadecimal number 65B2 to binary. For this we will replace each hexadecimal digit to binary values using the above table:

Hexadecimal number:  6    5    B    2
Binary values:     0110 0101 1011 0010

So (65B2)16 = (0110010110110010)2

6. Write a c program to convert octal number to hexadecimal number.
8. Write a c program to convert hexadecimal number to octal number.
9. Write a c program to convert hexadecimal number to decimal number.
10. Write a c program to convert binary number to octal number.

Anonymous said...

why do you use char to store the binary value

Unknown said...

#include
#include
int main()
{
int n,m[100],i=0,j=0,x=0,l[100],k;
printf("enter octal number:");
scanf("%d",&n);
printf("\n");
while(n>0)
{

m[i]=n%10;
x+=m[i]*pow(8,i);
n=n/10;
i++;
}
printf("decimal equivalent is : %d\n",x);
printf("HEXA DECIMAL equivalent is:");
while(x>0)
{
l[j++]=x%16;
//printf("%d ",l[j++]);
x=x/16;

}
for(k=j-1;k>=0;k--)
{

if(l[k]==10)
printf("A ");
else if(l[k]==11)
printf("B ");
else if(l[k]==12)
printf("C ");
else if(l[k]==13)
printf("D ");
else if(l[k]==14)
printf("E ");
else if(l[k]==15)
printf("F ");
else
printf("%d ",l[k]);

}
}

Unknown said...

#include
#include
#include
/**hexa decimal to octal conversion**/

int main()
{
char h[100];
int i = 0, val, len;
int dec = 0;
int place = 1;
int j=0,m[100];
gets(h);
len = strlen(h);
len--;
for(i=0; h[i]!='\0'; i++)
{
switch(h[i])
{
case '0':
val = 0;
break;
case '1':
val = 1;
break;
case '2':
val = 2;
break;
case '3':
val = 3;
break;
case '4':
val = 4;
break;
case '5':
val = 5;
break;
case '6':
val = 6;
break;
case '7':
val = 7;
break;
case '8':
val = 8;
break;
case '9':
val = 9;
break;
case 'a':
case 'A':
val = 10;
break;
case 'b':
case 'B':
val = 11;
break;
case 'c':
case 'C':
val = 12;
break;
case 'd':
case 'D':
val = 13;
break;
case 'e':
case 'E':
val = 14;
break;
case 'f':
case 'F':
val = 15;
break;
}

dec+= val * pow(16, len);
len--;
}