Ho scritto questo codice per convertire un numero decimale in una base (da 2 a 16) scelta dall'utente...
codice:
#include<stdio.h>
#define DIM 32 //dichiarazione di una costante per il vettore, di lunghezza 32, equivalente a 4bytes
int i,n,base,vet[DIM];;
void main()
{
printf("\n\tImmetti il numero DECIMALE da convertire... "); scanf("%d",&n); // immissione del valore
printf("\n\nDigita la base in cui lo vuoi convertire...sotto forma di numero(ad es per convertire in binario digita 2,ecc...) ");
scanf("%d",&base);
{
for (i = 0;i<DIM; i++) // memorizzazione a partire dall'ultimo elemento del vettore
{
vet[DIM-1-i]=n%base; // resto della divisione
n=n/base;
}
}
{
int j;
for(j=0;j<DIM;j++)
{
if(vet[j]>=10) printf("%c ",vet[j]+ 'A' - 10); // controllo per la visulizzazione delle lettere esadecimali
else printf("%c ",vet[j]+'0'); //vengono stampati degli 0 prima del numero vero e propio per permettere una spaziatura tra le cifre del numero
}
printf("\n\n");
}
}
Funge alla perfezione solo che il numero finale viene stampato con tutti 00000 davanti....
io vorrei stampare solo il numero ma se nn scrivo il
qua
codice:
else printf("%c ",vet[j]+'0');
mi stampa una riga di quadratini strani...come potrei fare??
:master:
help è importante