Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Python - Convertitore Decimale in Binario
Forum - Python - Convertitore Decimale in Binario

Avatar
crashoverride (Normal User)
Pro


Messaggi: 152
Iscritto: 09/07/2010

Segnala al moderatore
Postato alle 16:39
Sabato, 25/09/2010
Ciao, ho realizzato questo convertitore da base 10 a base 2 per poter fare i compiti più velocemente :heehee:
Ora, il programma funziona bene ma mi da questo problema:
Se per esempio io inserisco 12
Mi da --> 0 0 1 1 e io ovviamente lo leggo al contrario quindi --> 1100
Però vorrei chiedervi se è possibile modificarlo in modo da stampare subito 1100 e non 0011...
Eccovi il "codice sorgente"
Codice sorgente - presumibilmente Python

  1. def ConvertiInBinario(n):
  2.     while n>0:
  3.         if n%2==0:
  4.             print 0,
  5.         else:
  6.             print 1,
  7.  
  8.         n = n / 2
  9.        
  10.        
  11. x = input("Inserisci il numero in base 10: ")
  12. ConvertiInBinario(x)



Grazie...
PS: Sto chiedendo dei consigli su come modificarlo e non codice pronto...

PM
Avatar
GuglielmoS (Ex-Member)
Pro


Messaggi: 114
Iscritto: 27/11/2009

Up
1
Down
V
Segnala al moderatore
Postato alle 16:58
Sabato, 25/09/2010
Qualcosa come questo dovrebbe andare:
Codice sorgente - presumibilmente Python

  1. def ConvertiInBinario(n):
  2.         binString = []
  3.        
  4.         while n > 0:
  5.                 if n % 2 == 0:
  6.                         binString.append(0)
  7.                 else:
  8.                         binString.append(1)
  9.                 n = int(n / 2)
  10.            
  11.         binString.reverse()
  12.         return "".join(str(el) for el in binString)
  13.  
  14. print(ConvertiInBinario(12))


PM
Avatar
crashoverride (Normal User)
Pro


Messaggi: 152
Iscritto: 09/07/2010

Up
1
Down
V
Segnala al moderatore
Postato alle 18:20
Sabato, 25/09/2010
Grazie :)
Il problema era che quelle cose non le avevo ancora studiate...
Comunque ho capito quello che devo fare :)
Grazie...

PM
Avatar
delta (Member)
Rookie


Messaggi: 37
Iscritto: 25/08/2010

Up
1
Down
V
Segnala al moderatore
Postato alle 16:09
Lunedì, 27/09/2010
ma usare bin(numero)?
Codice sorgente - presumibilmente Plain Text

  1. >>>bin(6)
  2. '0b110'
  3. >>>bin(12523)
  4. '0b11000011101011'
  5. >>>



PM
Avatar
a_butta (Member)
Expert


Messaggi: 578
Iscritto: 16/03/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 16:54
Sabato, 25/09/2010
invece di print, puoi immagazzinare il tutto in una variabile di tipo string in modo che tu abbia alla fine dell'operazione una stringa che contenga il codice binario al contrario. Non ti rimane che printare :asd: la stringa al contrario
Spero di aver capito cosa intendevi... :D

PM
Avatar
crashoverride (Normal User)
Pro


Messaggi: 152
Iscritto: 09/07/2010

Up
-1
Down
V
Segnala al moderatore
Postato alle 21:26
Mercoledì, 06/10/2010
Testo quotato

Postato originariamente da a_butta:

invece di print, puoi immagazzinare il tutto in una variabile di tipo string in modo che tu abbia alla fine dell'operazione una stringa che contenga il codice binario al contrario. Non ti rimane che printare :asd: la stringa al contrario
Spero di aver capito cosa intendevi... :D



Non si puo fare come dici tu, perchè le stringhe  sono immutabili quindi non potrei aggiungere ad ogni ciclo un nuovo carattere! O sbaglio?

PM