• In diretta da GamesVillage.it
    • News
    • -
    • In Evidenza
    • -
    • Recensioni
    • -
    • RetroGaming
    • -
    • Anteprime
    • -
    • Video
    • -
    • Cinema

Visualizzazione risultati da 1 a 4 di 4

Discussione: Binario->Decimale in turbo Pascal

Cambio titolo
  1. #1
    --]-[eLioS-- L'avatar di Squall L.
    Registrato il
    10-02
    Messaggi
    689

    Binario->Decimale in turbo Pascal

    Come posso creare un programma che mi converta una stringa binaria in un numero decimale (senza usare gli array - visto che a scuola nn ci siamo arrivati-)? Mi sono fuso il cervello ma nn ce la faccio....

  2. #2
    violentissimo L'avatar di ABCcletta
    Registrato il
    10-02
    Località
    In un buco di culo
    Messaggi
    7.167
    Semplicemente apri un ciclo (con un valore i) che va da "0" al "numero di cifre del numero in binario -1" e (con un costrutto IF) se il bit della stringa è 1 ogni volta moltiplichi il 2 tante volte per se stesso quanto è il valore di i. Inserisci inoltre un altro costruffo IF che quando i è uguale a 0 e a 1 restituisce direttamente le operazioni "bit x 2elevatoa0" e "bit per 2elevatoa1"). Sommi consecutivamente il risultato in una variabile d'appoggio.

    Ti faccio un esempio:

    La stringa binaria è 100101. E' composta da 6 cifre, quindi dovrai iterare da 0 a 5. Sai che per ottenere il numero in decimale devi fare la seguente operazione: 2^0x1 + 2^1x0 + 2^2x1 + 2^3x0 + 2^4x0 +2^5x1 (dove ^ significa elevamento a potenza).
    Quindi nel ciclo for il programma effettuerà grazie all'IF le prime due iterazioni per 2^0x1 e 2^1x0 (sommando ogni volta una variabile d'appoggio a se stessa + il risultato della moltiplicazione) e successivamente, se il bit è 1 moltiplicherà il 2 tante volte per se stesso quanto è il valore di i (nel nostro caso per "2^2x1" effettuerà 2*2*1, per "2^3x0" il costrutto IF non girerà, per "2^4x0" il costrutto IF non girerà e per "2^5x1" effettuerà 2*2*2*2*2*1. Ogni volta come ti ho detto sommerai i valori in una variabile d'appoggio e alla fine ti ritrovera con il risultato giusto...
    Ultima modifica di ABCcletta; 21-01-2004 alle 16:15:19

  3. #3
    --]-[eLioS-- L'avatar di Squall L.
    Registrato il
    10-02
    Messaggi
    689
    Grazie 1000! ora provo....

  4. #4
    --]-[eLioS-- L'avatar di Squall L.
    Registrato il
    10-02
    Messaggi
    689
    Non ci riesco... Mi potresti scrivere la codifica in tp? così mi è + chiarpo? Grazie!

Regole di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •