View Full Version : [C] conversione decimale->binario
Avalanche
20-04-2009, 19:43
devo fare questa funzione in c ma ho molte restrizioni...
va usato lo shift... si usa una funzione void con due argomenti: un vettore in cui va memorizzato il numbinario e un unsigned int dove si passa il numdecimale.
non posso usare funzioni matematiche come il pow, e nemmeno le divisioni successive in maniera diretta....
come posso fare?
pseudoalgoritmo: fintantoché il numero decimale é diverso da zero shiftalo a sinistra di 1 e aggiungi in coda al vettore un 1 se c'é resto o uno 0 altrimenti. in altre parole:
void Convert(vector<int> &Result, unsigned int Number)
{
do
{
if (Number & 1)
{
Result.push_back(1);
}
else
{
Result.push_back(0);
}
Number >>= 1;
}
while (Number);
}
(non l'ho testato)
Avalanche
21-04-2009, 20:26
posto il codice corretto visto che ho risolto
void convdecbin(char numbin[32], int mydec){
int i;
for(i=0; i<32; i++){
numbin[i] = mydec & 1
mydec = mydec>>1
}
return;
}
DanieleC88
21-04-2009, 20:51
Così però lo salvi invertito, o no? :)
Avalanche
21-04-2009, 21:17
si ma basta stamparlo al contrario...
nel programma che dovevo fare questo è perfetto...
DanieleC88
21-04-2009, 21:36
Vabbe' sì, è identico, ma facevi prima a salvare gli elementi con indice (31-i), tutto qui. :)
ciao ;)
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.