Conversione da decimale in altra base a scelta

di il
4 risposte

Conversione da decimale in altra base a scelta

Salve, anzi tutto mi scuso per eventuali errori nella scrittura di questo argomento, ma essendo nuovo (nel senso che questa è la prima volta in vita mia che scrivo un argomento su un qualsiasi forum) non sono a conoscenza di eventuali "buone prassi di scrittura" ecc.

Passo a descrivere il problema: il mio compito è creare un progetto (composto quindi da un main e da funzioni racchiuse in una libreria a sua volta inclusa nel main) che consenta la conversione di una serie di numeri generati casualmente dalla base decimale ad una base scelta dall'utente, che può andare da 2 a 16, passando anche per le altre 13. Il problema sorge quando vado a richiamare la funzione che dovrebbe convertire il numero decimale e visualizzare quello convertito: qualsiasi siano numero e base, vengono sempre visualizzati solo due "0".

riporto qui il codice della funzione incriminata, sperando che qualcuno di voi sappia darmi delucidazioni su dove sia l'intoppo.
Grazie per l'attenzione

#include <stdio.h>
#define BASE_MAX 16
#define CIFRE_MAX 32

int conversione(int numero, int base)
{
	if(numero=0){
		printf("il numero %d in base %d e' 0\n");
	}
	char decodifica[BASE_MAX];
	char convertito[CIFRE_MAX];
	int resto, risultato, k=0;
	
	//riempimento del vettore decodifica
	decodifica[0]='0';
	decodifica[1]='1';
	decodifica[2]='2';
	decodifica[3]='3';
	decodifica[4]='4';
	decodifica[5]='5';
	decodifica[6]='6';
	decodifica[7]='7';
	decodifica[8]='8';
	decodifica[9]='9';
	decodifica[10]='A';
	decodifica[11]='B';
	decodifica[12]='C';
	decodifica[13]='D';
	decodifica[14]='E';
	decodifica[15]='F';
	
	//conversione del numero decimale in base scelta
	do{
		resto=numero%base;
		risultato=numero/base;
		convertito[k]=decodifica[resto];
		printf("%c", convertito[k]);
		k++;
	} while(risultato!=0);
	
	//visualizzazione del numero convertito
	for(k=k; k>0; k--){
		printf("%c",convertito[k-1]);
	}
	return 0;
}

4 Risposte

Devi accedere o registrarti per scrivere nel forum
4 risposte