#include //Libreria standard di I/O #include //Libreria standard per alcune funzioni #include //Libreria per la gestione delle stringhe #define MAX 100 int i=0,nu=0,nb[MAX],no[MAX],s2=0,n=0,B[MAX],conta=0,nd=0,k=0,bin[MAX],a=0,j=0,O[MAX],d=0,E1[MAX]; char ne,E[MAX],esc; int potenza(int x,int k){ int conta=0,xe=1; while(conta=0;i--){n=potenza(8,k); nd=nd+(O[i]*n); k++;} return; } void universale(){ k=0; nd=0; for(i=conta-1;i>=0;i--){n=potenza(2,k); nd=nd+(B[i]*n); k++;} return; } void decimale(){ printf("\n\nDammi Il Numero In Base Decimale Che Vuoi Convertire: "); scanf("%d",&nu); printf("\n\nBase Di Conversione:\n1)Binario\n2)Ottale\n3)Esadecimale\n\nScelta: "); scanf("%d",&s2); switch (s2){ case 1: i=0; do{ nb[i]=(nu%2); nu=nu/2; i++;}while(nu>=1); i--; printf("\n\nBinario: "); while(i>=0){printf("%d",nb[i]); i--;} break; case 2: printf("\n\nOttale: "); i=0; do{ nb[i]=(nu%8); nu=nu/8; i++;}while(nu>=1); i--; while(i>=0){printf("%d",nb[i]); i--;} break; case 3: printf("\n\nEsadecimale: "); do{ nb[i]=(nu%16); nu=nu/16; i++; } while(nu>=1); i--; while(i>=0){ if(nb[i]>=10) printf("%c",nb[i]+ 'A'-10); else printf("%c",nb[i]+'0'); i--;} break; } } void binario(){ for(i=0;i<100;i++) B[i]=0; conta=0; for(i=0;n!=2;i++){printf("\n\nDammi Il Numero In Base Binaria Che Vuoi Convertire una cifra binaria alla volta (2 per terminare): "); scanf("%d",&n); if(n<2){B[i]=n; conta++;} else{if(n!=2) printf("\nCifra non presente nel sistema di numerazione binario"); i--;}} n=0; printf("\n\nBase Di Conversione:\n1)Decimale\n2)Ottale\n3)Esadecimale\n\nScelta: "); scanf("%d",&s2); switch (s2){ case 1: universale(); printf("\n\nDecimale: %d",nd); break; case 2: universale(); i=0; do{ nb[i]=(nd%8); nd=nd/8; i++;}while(nd>=1); i--; printf("\n\nOttale: "); while(i>=0){printf("%d",nb[i]); i--;} break; case 3: universale(); i=0; do{ nb[i]=(nd%16); nd=nd/16; i++;}while(nd>=1); i--; printf("\n\nEsadecimale: "); while(i>=0){ if(nb[i]>=10) printf("%c",nb[i]+ 'A'-10); else printf("%c",nb[i]+'0'); i--;} break; } } void ottale (){ for(i=0;i<100;i++) O[i]=0; conta=0; n=0; for(i=0;n!=8;i++){printf("\n\nDammi Il Numero In Base Ottale Che Vuoi Convertire una cifra Ottale alla volta (8 per terminare): "); scanf("%d",&n); if(n<8){O[i]=n; conta++;} else{if(n!=8) printf("\nCifra non presente nel sistema di numerazione ottale"); i--;}} printf("\n\nBase Di Conversione:\n1)Decimale\n2)Binario\n3)Esadecimale\n\nScelta: "); scanf("%d",&s2); switch (s2){ case 1: universale_2(); printf("\n\nDecimale: %d",nd); break; case 2: universale_2(); i=0; do{ nb[i]=(nd%2); nd=nd/2; i++;}while(nd>=1); i--; printf("\n\nBinario: "); while(i>=0){printf("%d",nb[i]); i--;} break; case 3: universale_2(); i=0; do{ nb[i]=(nd%16); nd=nd/16; i++;}while(nd>=1); i--; printf("\n\nEsadecimale: "); while(i>=0){ if(nb[i]>=10) printf("%c",nb[i]+ 'A'-10); else printf("%c",nb[i]+'0'); i--;} break; } } void esadecimale(){ printf("\n\nBase Di Conversione:\n1)Decimale\n2)Binario\n3)Ottale\n\nScelta: "); scanf("%d",&s2); switch(s2){ case 1: printf("\n\nDammi Il Numero In Base Esadecimale Che Vuoi Convertire: "); scanf("%X",&nu); printf("\n\nDecimale: %d",nu); break; case 2: conta=0; for(i=0;ne!='*';i++){printf("\n\nDammi Il Numero In Base Esadecimale Che Vuoi Convertire una cifra alla volta (* per terminare): "); scanf("%s",&ne); E[i]=ne; conta++;} printf("\n\nBinario: "); for(i=0;i