Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    13

    [C++] Conversione da Binario a Decimale

    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.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Cosa non hai capito?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    13
    Originariamente inviato da oregon
    Cosa non hai capito?
    Come effettuare la conversione...un esempio mi sarebbe utile

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    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.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    13
    Ho provato a scrivere qualcosa, il problema è che non so da dove iniziare, è per questo che ho chiesto spiegazioni.

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    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.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    13
    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...

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da awdre
    for (k=1,dec=0;bin;k*=2,bin/=10)
    dec+=(bin%10)*k;
    Ne hai esaminato le varie parti ? Sono

    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.

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    13
    Ok, grazie di tutto.

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    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.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.