Showing posts with label Conversions. Show all posts
Showing posts with label Conversions. Show all posts

Wednesday, 6 September 2017

C-Program to convert Binary to Hexadecimal



Method I:
 
#include<stdio.h>
#include<string.h>

int main()
{
 int binaryNum[]={0,1,10,11,100,101,110,111,1000,1001,1010,1011,1100,1101,1110,1111},j=0,i;
 char hexa[20]="";
 unsigned long long int binary,number,temp;
 printf("Enter Binary number\n");
 scanf("%llu",&binary);
 temp=binary;
 while(temp!=0)
 {
  number=temp%10000;
  for(i=0;i<=15;i++)
  {
   if(binaryNum[i]==number)
   {
    if(i<=9)
    hexa[j]=(i+'0'); //i+'0' to convert integer to string
    else
    hexa[j]=(i+55);   
    j++;
   }
  }
  temp/=10000;
 }
 hexa[j]='\0';
 strrev(hexa);
 printf("Octal number for given Binary number %llu is %s\n",binary,hexa);
return 0;
}

Method II:
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<ctype.h>
int ConvertFromBinarytoOther(unsigned long long int,int);
char *ConvertFromDecimalToHexa(int,int);

int main()
{
    char final[20];
    unsigned long long int binary,decimal;
    printf("Enter Binary Number\n");
    scanf("%llu",&binary);
    decimal=ConvertFromBinarytoOther(binary,2);//Converting binary to decimal
    strcpy(final,ConvertFromDecimalToHexa(decimal,16));//Converting Decimal to Hexa
    printf("HexaDecimal for given Binary %llu is %s\n",binary,final);
return(0);
}

char *ConvertFromDecimalToHexa(int decimal,int num)
{
 int temp,i,k=0;
 char final[20];
    temp=decimal;
    while(temp!=0)
    {
      i=temp%num;
      if(i>9)
      {
       final[k]=i+55;
       k++;
      }
      else{
       final[k]=(i+'0');//To convert from integer to character add (number+'0')
       k++;
      }
      temp=temp/num;
     }
     final[k]='\0';
     return(strrev(final));
}

int ConvertFromBinarytoOther(unsigned long long int binary,int num)
{
 int i,inc=0,final=0;
 unsigned long long int temp;
    temp=binary;
    while(temp!=0)
    {
      i=temp%10;
      final=final+(i*pow(num,inc));
      temp=temp/10;
      inc++;
     }
     return(final);
 }

C-Program to Covert Binary to Octal


#include<stdio.h>

int main()
{
 int octalNum[]={0,1,10,11,100,101,110,111};
 long int binary,i,number,temp,octal=0,j=1;
 printf("Enter Binary number\n");
 scanf("%ld",&binary);
 temp=binary;
 while(temp!=0)
 {
  number=temp%1000;
  for(i=0;i<=7;i++)
  {
   if(octalNum[i]==number)
   {
    octal=octal+(i*j);
   }
  }
  j*=10;
  temp/=1000;
 }
 printf("Octal number for given Binary number %ld is %ld\n",binary,octal);
return 0;
}

Method II:
#include<stdio.h>
#include<math.h>
int ConvertFromBinarytoOther(int);
int ConvertFromDecimalToOther(int);

int main()
{
 int final,num,binary,decimal;
 printf("Enter Binary Number\n");
 scanf("%d",&binary);
 decimal=ConvertFromBinarytoOther(binary);//Converting binary to decimal
 final=ConvertFromDecimalToOther(decimal);//Converting decimal to octal
 //So binary to Octal
 printf("Octal number of Binary number %d is %d\n",binary,final);
return(0);
}

int ConvertFromDecimalToOther(int decimal)
{
 int temp,i,j=1,final=0;
    temp=decimal;
    while(temp!=0)
    {
      i=temp%8;
      final=final+(i*j);
      temp=temp/8;
      j=j*10;
     }
     return(final);
}

int ConvertFromBinarytoOther(int binary)
{
 int final=0,i,inc=0,temp;
    temp=binary;
    while(temp!=0)
    {
      i=temp%10;
      final=final+(i*pow(2,inc));
      temp=temp/10;
      inc++;
     }
     return(final);
}