04.06.2008 | 22:12:22
immagine
Ing. Emanuele Scapin

C, algoritmo di conversione da base 10 a un'altra base.
  • Programma in C per l'implementazione dell'algoritmo di conversione tra basi, permette la conversione da base 10 ad un'altra base, anche base 16.


  • Proposta di soluzione semplificata.

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    /*
     * 
     */
    int main(int argc, char** argv) {
        // istruzione per chi usa il compilatore Cygwin in ambiente Windows
        setvbuf(stdout, 0, _IONBF, 0);
        
        int val=0;
        int base = 2;
    
        int ris[20];
        char risc[20];
        printf("\nintrodurre valore da convertire ");
        scanf("%d", &val);
        printf("\nintrodurre base a cui convertire ");
        scanf("%d", &base);   
        
        int i = 0;
        int q = val;
        while (q != 0) {
            int r = q % base;
            q = (int) q/base;
            printf("\n %d", r);
            switch (r) {
                case 10: risc[i] = 'A';
                break;
                case 11: risc[i] = 'B';
                break;
                case 12: risc[i] = 'C';
                break;
                case 13: risc[i] = 'D';
                break;
                case 14: risc[i] = 'E';
                break;
                case 15: risc[i] = 'F';
                break; 
                default: risc[i] = r+'0';
            }
            ris[i]=r;
            i++;
        }
        printf("\nstampa resti calcolati\n");
        int j=0;
        for(j=i-1; j>=0;j--) {
            printf("%d",ris[j]);
        }
        printf("\nstampa valori corrispondenti ai resti calcolati\n");
        for(j=i-1; j>=0;j--) {
            printf("%c",risc[j]);
        }    
    
        return (EXIT_SUCCESS);
    }
            

© Emanuele Scapin 2009-2018

 

Valid HTML 4.01! Valid CSS!