Lo scopo del programma e' quello di convertire un numero decimale in binario.
In ingresso prendo una stringa che contiene il numero decimale, la converto in un intero e poi genero una seconda stringa contenente il numeroo binario. Il fatto e' che dopo aver memorizzato la stringa del numero binario qualche volta (per es. con 300 e altri numeri) mi viene aggiunto un carattere alla fine della stringa (mi ha sempre aggiunto il char '@' ma credo che sia puro caso)... Allora ho provato ad inizializzare la stringa con char num_bin[DIM] = "0" ed il problema si risolve.... mi sapete spiegare come mai sto fatto?
codice:
/* num_da_conv = stringa contenente il numero decimale da convertire */
/* num_conv = stringa che dovrà contenere il numero convertito in binario */
/* num_dec = numero decimale definito come integer */
/* base_num = 2 */
/* BASE_DEC = 10 */
/* Converto la stringa contenente il numero decimale in integer */
num_cifre = strlen(num_da_conv) - 1;
for (i = 0,
num_dec = 0;
i <= num_cifre;
num_dec += (num_da_conv[i] - '0') * ceil(pow(BASE_DEC, (num_cifre - i))),
i++);
/* Converto il numero decimale in binario */
for (i = 0,
num_conv[0] = '0';
num_dec > 0;
i++)
{
num_conv[i] = (num_dec % base_num) + '0');
num_dec = num_dec / base_num;
}