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;
}
}