Realizziamo in questa lezione un semplice convertitore decimale binario in Python utilizzando le funzioni appena studiate.
Quindi iniziamo creando una funzione che prende come parametro un numero decimale e restituisce il numero convertito in binario.
Convertitore decimale binario in Python
Assegniamo a b, cioè alla variabile che conterrà il numero binario, la stringa vuota.
Dopo con un ciclo while che itera finché n è maggiore di zero, controlliamo se il resto della divisione è zero. Se il resto è zero aggiungiamo 1 alla stringa inizializzata, altrimenti aggiungiamo 1.
Ecco dunque il codice completo:
def dec_bin(n):
b=‘ ‘
while n>0:
if n%2==0:
b=‘0’+b
else:
b=‘1’+b
n=int(n/2) #casting in intero
print(b)
c=int(input(‘Inserisci un numero decimale: ‘))
dec_bin(c)
Convertitore decimale ottale in Python
Realizziamo anche una funzione che effettui la conversione da decimale a ottale.
In questo caso dobbiamo considerare i resti della divisione per 8.
Facciamo un esempio, considerando il numero decimale 32:
31:8=3 resto 7
Quindi 7 sarà l’ultima cifra del numero ottale che vogliamo trovare.
Dopo dobbiamo prendere 3 che si trova con questa formula (n-resto)/8, cioè (31-7)/8 e ancora 24/8 che appunto è uguale a tre.
Aggiungiamo alla stringa ottale la stringa resto che ottengo con un’operazione di casting.
Poi divido 3 per 8:
3:8=0 resto 3
Aggiungo 3 alla stringa precedente nella posizione sinistra, ottenendo così il numero 37.
Quindi mi fermo perché la condizione n>0 non è più verificata.
Ecco dunque il codice completo:
def dec_ot(n):
ottale=”
while n>0:
resto=n%8
n=int((n-resto)/8)
ottale=str(resto)+ottale
print(ottale)
o=int(input(‘Inserisci un numero decimale: ‘))
dec_ot(o)
Questo era solo un semplice modo per sviluppare un convertitore da decimale a binario e ottale in Python, potete trovare voi stessi un’altra soluzione.
Funzioni predefinite per la conversione
Ovviamente esistono le funzioni predefinite per convertire un numero da una base all’altra, ma è interessante ragionare su questi algoritmi.
Ecco quindi le funzioni predefinite:
print(‘In base 2: ‘, bin(33))
print(‘In base 8: ‘, oct(33))
Alcuni link utili
Indice tutorial sul linguaggio Python
1 – Introduzione al linguaggio Python
2 – Le variabili
3 – Operatori aritmetici e di assegnazione
4 – Stringhe
5 – Casting
6 – Input e print
8 – Errori in Python
9 – Script Python
10 – Scambio di variabili