Traduttore codice binario ed esadecimale

Stato
Discussione chiusa ad ulteriori risposte.

taal25

Utente Bronze
9 Gennaio 2017
6
2
0
24
Ciao a tutti ho creato questo semplice programma in python per tradurre un numero decimale in binario ed esadecimale vi lascio il link del git: https://github.com/taal25/Translate-Binary-Hexadecimal.git
In futuro conto di aggiungerci la traduzione inversa(da binario o da esadecimale in decimale) e traduzione in caratteri ascii. Se avete suggerimenti o volete partecipare a questo semplice progetto contattatemi sul forum o su telegram: @taa
 
Il tuo script è stato ideato per fare solo due cose: convertire un numero decimale a binario o esadecimale, però in entrambi i casi non riesce ad effettuare la conversione in modo corretto (esempio: come fa 244 ad essere 154 in esadecimale, quando dovrebbe essere F4?).
Crearsi così tanti problemi a scrivere una fesseria quando puoi utilizzare direttamente la funzione hex() e bin():
Python:
print(hex(10), bin(10)) # python3
hai visto? Ho creato uno script da 1a riga di codice che stampa l'esadecimale e il binario di 10: 0xA e 00001010.
O sono io che mi sto semplificando troppo la vita? :asd:
 
Il tuo script è stato ideato per fare solo due cose: convertire un numero decimale a binario o esadecimale, però in entrambi i casi non riesce ad effettuare la conversione in modo corretto (esempio: come fa 244 ad essere 154 in esadecimale, quando dovrebbe essere F4?).
Crearsi così tanti problemi a scrivere una fesseria quando puoi utilizzare direttamente la funzione hex() e bin():
Python:
print(hex(10), bin(10)) # python3
hai visto? Ho creato uno script da 1a riga di codice che stampa l'esadecimale e il binario di 10: 0xA e 00001010.
O sono io che mi sto semplificando troppo la vita? :asd:
grazie per il suggerimento, ho modificato lo script e mi scuso per la mia ignoranza non ero a conoscenza della funziona bin() ed hex() sono ancora alle prime armi per il python, per quanto riguarda la funzionalità dello script primordiale ero a conoscenza del fatto che ci stavano errori nella parte dell'esadecimale e stavo già provvedendo a trovare una soluzione(che grazie a te è arrivata) ma nella parte binaria non ci stava alcuno sbaglio e funzionava tutto correttamente.
 
Imparare a ricreare funzioni già esistenti in un linguaggio è alla base della programmazione. Il vero problema dello script è l'utilizzo della funzione system di os (Motivo) che può essere sostituita con valide alternative. Ad esempio: al posto di riavviare lo script potresti usare un loop infinito.
 
Imparare a ricreare funzioni già esistenti in un linguaggio è alla base della programmazione. Il vero problema dello script è l'utilizzo della funzione system di os (Motivo) che può essere sostituita con valide alternative. Ad esempio: al posto di riavviare lo script potresti usare un loop infinito.
A tal proposito avresti un pdf/link da consigliarmi che riassume le funzioni o librerie in python.
 
@taal25 i miglioramenti che ti consiglio sono questi:
Python:
#!/bin/python

exitable = False

while not exitable:
    n = input("Select a number (input a non-numerical value to exit): ")

    if n.isdigit():
        print("Decimal to binary:", bin(int(n)))
        print("Decimal to hexadecimal:", hex(int(n)))
    else:
        exitable = True
in sintesi, non c'è bisogno di restartare alcuno script, nè di chiamare alcuna funzione system - con un loop trovo una soluzione più semplice. In questo modo comunico all'utente di inserire qualsiasi valore non numerico (per esempio, una stringa vuota) per uscire dal programma, inserire un valore numerico per continuare a convertire da decimale a binario e a esadecimale. Provalo.
 
Stato
Discussione chiusa ad ulteriori risposte.