Program 320:All in one Conversions(Total 12 Conversions in one Program)
//Coming Soon...
Output:
#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:
Output: