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

7 – Primi esercizi in Python

8 – Errori in Python

9 – Script Python

10 – Scambio di variabili