Contact Learn C
Copy

Program 320:All in one Conversions(Total 12 Conversions in one Program)

Program 320:All in one Conversions(Total 12 Conversions in one Program)
 
#include<stdio.h>
#include<string.h>
#include<ctype.h>
void Menu();
int ConvertFromBinarytoOther(int,int);
int ConvertFromDecimalToOther(int,int);
char *ConvertFromDecimalToHexa(int,int);
int ConvertFromOctaltoDecimal(int);
int ConvertFromHexatoDecimal(char *);
int main()
{
 int choice;
 do{
  Menu();
  printf("Enter choice\n");
  scanf("%d",&choice);
  switch(choice)
  {
   case 1:
   case 2:
   {
    int final,num,binary,decimal;
    char str[10];
    printf("Enter Binary Number\n");
    scanf("%d",&binary);
    if(choice==1)
    {
     strcpy(str,"Decimal");
     final=ConvertFromBinarytoOther(binary,2);
    }
    if(choice==2)
    {
     strcpy(str,"Octal");
     decimal=ConvertFromBinarytoOther(binary,2);//Converting binary to decimal
     final=ConvertFromDecimalToOther(decimal,8);//Converting decimal to octal
     //So binary to Octal
    }
       printf("%s number of Binary number %d is %d\n",str,binary,final);
    break;
   }
   case 3:
   {
    char final[20];
    int num,binary,decimal;
    printf("Enter Binary Number\n");
    scanf("%d",&binary);
    decimal=ConvertFromBinarytoOther(binary,2);//Converting binary to decimal
    strcpy(final,ConvertFromDecimalToHexa(decimal,16));//Converting Decimal to Hexa
    printf("HexaDecimal for given Binary %d is %s\n",binary,final);
    break;
   }
   case 4:
   {
    int octal,decimal,binary;
    printf("Enter Octal Number\n");
    scanf("%d",&octal);
    decimal=ConvertFromOctaltoDecimal(octal);
    binary=ConvertFromDecimalToOther(decimal,2);
    printf("Binary Number for given Octal Number %d is %d\n",octal,binary); 
    break;
   }
   case 5:
   {
    int octal,decimal;
    printf("Enter Octal Number\n");
    scanf("%d",&octal);
    decimal=ConvertFromOctaltoDecimal(octal);
    printf("Decimal for given Octal Number %d is %d\n",octal,decimal);    
    break;
   }
   case 6:
   {
    int octal,decimal;
    char hexa[20];
    printf("Enter Octal Number\n");
    scanf("%d",&octal);
    decimal=ConvertFromOctaltoDecimal(octal);
    strcpy(hexa,ConvertFromDecimalToHexa(decimal,16));
    printf("Binary Number for given Octal Number %d is %s\n",octal,hexa); 
    break;
   }
   case 7:
   case 8:
   {
    int decimal,num,final;
    char str[10];
    printf("Enter Decimal\n");
    scanf("%d",&decimal);
    if(choice==7)
             {
              num=2;
              strcpy(str,"Binary");
             }
             if(choice==8)
             {
              num=8;
              strcpy(str,"Octal");
               }
       final=ConvertFromDecimalToOther(decimal,num);
       printf("%s number of Decimal %d is %d\n",str,decimal,final);
    break;
   }
   case 9:
   {
    int decimal,num;
    char str[10],final[20];
    printf("Enter Decimal\n");
    scanf("%d",&decimal);
    strcpy(final,ConvertFromDecimalToHexa(decimal,16));
    printf("Hexadecimal for %d is %s\n",decimal,final);
    break;
   }
   case 10:
   {
    char hexa[20];
    int decimal,binary;
    printf("Enter HexaDecimal\n");
    scanf("%s",hexa);
    decimal=ConvertFromHexatoDecimal(hexa);
    binary=ConvertFromDecimalToOther(decimal,2);
    printf("Binary for given HexaDecimal %s is %d\n",hexa,binary);
    break;
   }
   case 11:
   {
    char hexa[20];
    int decimal,octal;
    printf("Enter HexaDecimal\n");
    scanf("%s",hexa);
    decimal=ConvertFromHexatoDecimal(hexa);
    octal=ConvertFromDecimalToOther(decimal,8);
    printf("Binary for given HexaDecimal %s is %d\n",hexa,octal);
    break;
   }
   case 12:
   {
    char hexa[20];
    int decimal;
    printf("Enter HexaDecimal\n");
    scanf("%s",hexa);
    decimal=ConvertFromHexatoDecimal(hexa);
    printf("Decimal for given HexaDecimal %s is %d\n",hexa,decimal); 
    break;
   }
  }
  
 }while(choice<=12&&choice>=1);
 
return(0); 
}
void Menu()
{
 char *str[]={"binary to decimal","binary to octal","binary to hexadecimal",
             "octal to binary","octal to decimal","octal to hexadecimal",
          "decimal to binary","decimal to octal","decimal to hexadecimal",
          "hexadecimal to binary","hexadecimal to octal","hexadecimal to decimal","\0"};
 int i=0;
 printf("Enter\n");
 while(str[i]!="\0")
 {
  printf("%2d - %s\n",i+1,str[i]);
  i++;
 }
}
int ConvertFromDecimalToOther(int decimal,int num)
{
 int temp,i,j=1,final=0; 
    temp=decimal;
    while(temp!=0)
    {
      i=temp%num;
      final=final+(i*j);
      temp=temp/num;
      j=j*10;
     }
     return(final);
}

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(int binary,int num)
{
 int final=0,i,inc=0,temp;
    temp=binary;
    while(temp!=0)
    {
      i=temp%10;
      final=final+(i*pow(num,inc));
      temp=temp/10;
      inc++;
     }
     return(final);
 
}

int ConvertFromOctaltoDecimal(int octal)
{
 int dec=0,temp,i,inc=0;
    temp=octal;
    while(temp!=0)
    {
      i=temp%10;
      dec=dec+(i*pow(8,inc));
      temp=temp/10;
      inc++;
    }
    return(dec);
}

int ConvertFromHexatoDecimal(char *hexa)
{
 int dec=0,i=0,j,len,num;
 len=strlen(hexa);
 for(j=0;j<len;j++)
 hexa[j]=toupper(hexa[j]);
    while(len>0)
    {
      if(hexa[i]>='A'&&hexa[i]<='F')
      {
        num=hexa[i]-'A'+10;
       dec=dec+(num*pow(16,(len-1)));
      }
      else
      {
        num=hexa[i]-'0';
        dec=dec+(num*pow(16,(len-1)));
      }
      i++;
      len--;
    }
    return(dec);
 
}
Explanation:

//Coming Soon...

Output:

All in one Conversions(Total 12 Conversions in one Program)

All in one Conversions(Total 12 Conversions in one Program)

No comments:

Post a Comment

Donate

Download App and Learn when ever you want

Get it on PlayStore
Get it on Amazon App Store
Get it on Aptoide