Profilo di DarkItalian170

Nome DarkItalian170
Indirizzo email n/a
Messaggi3
  • Re: Problema in semplicissimo programma per trasformare i numeri decimali in numeri binari
    Forum >> Principianti
    1) il resto lo calcoli sul nuovo numero già diviso invece che su quello ancora da dividere.
    2) alla fine aggiungi sempre un 1 iniziale indipendentementa da tutto il resto
    3) il che porta al punto 3, cosa succede se l'utente inserisce solo 1 o solo 0 ?

    Grazie mille, risolto grazie al primo consiglio

    Per quanto riguardi gli altri due, se verrà digitato 1 verrà saltato il while, quindi verrà scritto direttamente 1 (che è giusto)... Per lo 0,aggiungerò un if ^^
  • Re: Problema in semplicissimo programma per trasformare i numeri decimali in numeri binari
    Forum >> Principianti
    Daniele aka Palmux said @ 2015-09-06 20:21:28:
    Ciao caro, prova ad aggiungere ad inizio codice:

    # -*- coding: utf-8 -*-
    Cya




    --- Ultima modifica di Daniele aka Palmux in data 2015-09-06 20:21:50 ---
    Intanto grazie per la risposta ^^

    Comunque ho fatto come lei mi ha consigliato, ma niente...

    Fortunatamente, però, scrivendo il codice su un altro computer il programma si avvia...

    Il problema è un altro adesso: la conversione non è giusta!

    Esempio: il 4, che dovrebbe trasformarsi in 100, si trasforma in 110. Il 100, che dovrebbe diventare 1100100, diventa 1110010




    Come faccio? Il codice mi sembra giusto...

    Grazie
  • Problema in semplicissimo programma per trasformare i numeri decimali in numeri binari
    Forum >> Principianti
    Salve
    Ho iniziato da poco a studiare il python (utilizzo la versione 3.4) e, per esercitarmi, ho provato a creare un semplice programma da poche righe che trasforma un numero decimale qualunque in un numero binario.

    Purtroppo, quando premo f5 per avviare il programma, la shell di python mi presenta solo i classici >>>, senza che accada nulla.

    Potreste aiutarmi cercando di individuare l'eventuale errore?

    Ecco a voi il codice:

    numero = input("Scrivi un numero decimale che vuoi trasformare in un numero binario: ")       #Chiedo all'esecutore del programma quale numero decimale ha intenzione di trasformare in numero binario, assegnando il valore ottenuto alla variabile "numero"
    numero = int(numero)                                                                          #Trasformo il valore ottenuto in precedenza (una stringa) in un valore numerico intero
    risultato = ''                                                                                #Creo la variabile "risultato" che conterrà solo stringhe concatenate fra di loro
    resto = 0                                                                                     #Creo la variabile "resto"
    
    while numero > 1:                                                                             #Inizio un ciclo che terminerà quando il numero da dividere sempre per due arriverà a 1
        numero = numero // 2                                                                      #Divido il numero interessato per due
        resto = numero % 2                                                                        #Trovo il resto dell'operazione precedente. I valori che otterremo da questa operazione saranno quelli che comporranno il risultato
        risultato = str(resto) + str(risultato)                                                   #Compongo il risultato finale, il quale sarà formato da diverse stringhe concatenate in questo modo
    
    risultato = '1' + str(risultato)                                                              #Il ciclo precedente comporrà la maggior parte del risultato. Una volta che il numero interessato arriverà ad 1, verrà inserito il primo numero del numero binario (la trasformazione da un numero decimale a uno binario parte dalla fine per finire all'inizio)
    
    
    print str(risultato)                                                                          #Alla fine verrà stampato il risultato

    Grazie mille per le risposte ^^
    P.S. Se uso Alt+X, non mi vengono segnalati errori...