|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2005
Messaggi: 596
|
[C] conversione decimale->binario
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? |
|
|
|
|
|
#2 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
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:
Codice:
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);
}
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Aug 2005
Messaggi: 596
|
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; } |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Così però lo salvi invertito, o no?
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Aug 2005
Messaggi: 596
|
si ma basta stamparlo al contrario...
nel programma che dovevo fare questo è perfetto... |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Vabbe' sì, è identico, ma facevi prima a salvare gli elementi con indice (31-i), tutto qui.
ciao
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:53.



















