Ciao ragazzi.
Dovrei convertire un numero binario in decimale(c++), ma fino ad ora non ci ho capito molto... Mi chiedevo se qualcuno di voi potesse spiegarmi brevemente come fare, magari un esempio sarebbe utile.
Grazie mille.
Ciao ragazzi.
Dovrei convertire un numero binario in decimale(c++), ma fino ad ora non ci ho capito molto... Mi chiedevo se qualcuno di voi potesse spiegarmi brevemente come fare, magari un esempio sarebbe utile.
Grazie mille.
Cosa non hai capito?
No MP tecnici (non rispondo nemmeno!), usa il forum.
Come effettuare la conversione...un esempio mi sarebbe utileOriginariamente inviato da oregon
Cosa non hai capito?![]()
Più che un esempio ti sarebbe utile provare a scrivere tu qualcosa e poi discuterne.
Dove hai inserito il numero in binario?
P.S. Per essere chiari, qui non si fanno esercizi per casa, ma si discute di programmazione e si dà una mano ...
No MP tecnici (non rispondo nemmeno!), usa il forum.
Ho provato a scrivere qualcosa, il problema è che non so da dove iniziare, è per questo che ho chiesto spiegazioni.
Cosa hai provato a scrivere?
Per prima cosa, devi fare l'input del valore binario, in una stringa (magari, lunga al massimo 10 caratteri per un numero a 10 bit).
Questo lo sai fare?
No MP tecnici (non rispondo nemmeno!), usa il forum.
Esempio: Ho un codice del genere:
#include <iostream>
using namespace std;
int main()
{
int k, dec, bin;
cout<<" Inserisci un numero binario: ";
cin >> bin;
k=1;
dec=0;
for (k=1,dec=0;bin;k*=2,bin/=10)
dec+=(bin%10)*k;
cout<< dec;
system("pause");
return 0;
}
ma non ho ben capito cosa fa esattamente il ciclo for...
Ne hai esaminato le varie parti ? SonoOriginariamente inviato da awdre
for (k=1,dec=0;bin;k*=2,bin/=10)
dec+=(bin%10)*k;
per l'inizializzazione : k=1, dec=0 (ovvero, k viene posto uguale a 1 e dec a 0)
per il controllo del termine : bin (ovvero, termina quando bin è uguale a 0)
ad ogni passo : k*=2, bin/=10 (ovvero, raddoppia k e dividi bin per 10)
Infine nel corpo : dec+=(bin%10)*k; (ovvero trova il resto di bin diviso 10, moltiplicalo per k e aggiungi il risultato a dec, che alla fine, sarà il risultato.
In base a questi elementi, sai fare su carta un esempio di come lavora il programma, ad esempio partendo da
bin = 1100
?
Non mi dire che non ci puoi provare ...
No MP tecnici (non rispondo nemmeno!), usa il forum.
Ok, grazie di tutto.
dec è il valore finale decimale che si vuole ottenere. Dato che si ottiene per somme successive, deve partire da 0, non credi?
k è il valore di ogni bit (partendo da destra) se tale bit è a 1
Il primo bit a destra, se è a 1, vale 1, il secondo vale 2, il terzo vale 4 e così via.
Con un valore 1100 sommerai solamente i valori k=4 e k= 8 per avere il valore 12 in dec.
No MP tecnici (non rispondo nemmeno!), usa il forum.