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

Rispondi quotando
...non per convertire da decimale a stringa binaria...comunque ti eviti il primo ciclo.
