Conversione da base 10 a base N – C/C++

Conversione tra basi in c/c++Conversione da un numero in base 10 ad un numero in base N fino alla base 16

Per la conversione tra le basi il metodo è quello di dividere e prendere il resto.
Esempio di un numero decimale convertito in binario

10 è il numero decimale e bisogna dividerlo per la base in cui convertire cioè 2

10/2 = 5 resto = 0
5/2 = 2,5 resto = 1
2/2 = 1 resto = 0
1/2 = 0,5 resto = 1

bisogna ora leggere il resto dal basso all’alto quindi 1010 = 10102

C/C++

 

#include <stdlib.h>
#include <stdio.h>

int num_conv[16];
int i;

int conversione(int num, int base);

int main()
{
    int num,base;
 
    do{
        printf("inserire numero : ");
        scanf("%d",& num);
    }while((num>65535) || (num <= 0));

    do{
        printf("\ninserire base: ");
        scanf("%d", & base);
    }while((base>16) || (num <= 1));
 
    conversione(num, base);
 
    printf("\nil numero %d convertito in base %d : ", num, base);
    for (i=0;i<16;i++)
    {
        if (base==16)
           printf("%X", num_conv[i]);
        else
           printf("%d", num_conv[i]);
    }
    printf("\n\n");
 system("pause");
}

int conversione(int num, int base)
{
    for (i=15;i>=0;i--)
    {
        if (num==0)
        num_conv[i]=0;
        num_conv[i]=num % base;
        num/=base;
    }
}
Precedente CityGlance la nuova app italiana Successivo Vettore (o Array)