Conversione fra sistemi di numerazione

Conversioni con altri sistemi numerici (convertitore on line)

Tabella con la corrispondenza delle prime 15 cifre:

Esadecimale

Da decimale a esadecimale

Un metodo per convertire un numero esadecimale in decimale è quello di moltiplicare le sue cifre per le potenze della base 16. Ad esempio 4F =4\times 16^{1}+{{\rm {F}}}\times 16^{0} dove F vale 15 (vedi tabella sopra):

quindi (4{\rm {{F})_{{16}}=4\times 16^{1}+15\times 16^{0}}}. (Si ricordi che 160 = 1).

Allora (4{\rm {{F})_{{16}}=4\times 16^{1}+15\times 1=4\times 16+15\times 1=64+15=79}}.

L'operazione inversa - da decimale ad esadecimale - si realizza con una serie di divisioni successive. Si utilizza la divisione con resto. Vediamo un esempio:

{\frac  {79}{16}}=4,9375 quindi si arrotonda il risultato per difetto. Occorre ora trovare il resto, il modo più semplice è moltiplicare la parte decimale per il divisore della precedente operazione: 0,9375\times 16=15. Infine si deve comporre il numero in sistema esadecimale: il 4 è indicato dal simbolo 4, il 15 dal simbolo F: 4F.

Un altro esempio:

FB3 in esadecimale corrisponde al numero 4019 in base decimale. Si ha

({{\rm {FB}}}3)_{{16}}=F\times 16^{2}+B\times 16^{1}+3\times 16^{0}=15\times 16^{2}+11\times 16^{1}+3\times 16^{0}=

=15\times 256+11\times 16+3\times 1=3840+176+3=4019.

Viceversa, convertiamo 4019 in esadecimale:

4019:16 = 251 con resto 3.

Il quoziente 251 va di nuovo diviso per 16,

251:16 = 15 con resto 11,

Il quoziente 15 è minore della base 16 e il procedimento di divisione si arresta.

Si scrive il numero partendo dall'ultimo risultato ottenuto e si risale la successione dei resti. Il numero esadecimale è 15-11-3

cioè F-B-3

che si scrive FB3.

Da binario a esadecimale

La ragione per cui si adopera in informatica è che il sistema esadecimale può essere considerato come una scrittura più compatta del sistema binario. La conversione dalla base 16 alla base 2 e viceversa può essere svolta per sostituzione di gruppi di cifre invece che con algoritmi di divisione.

Ad esempio, si consideri il seguente numero in base 16: A16BC916. Per convertirlo in base 2, è sufficiente prelevare ciascuna cifra esadecimale e sostituirla con il suo equivalente nel sistema binario, come riportato nella colonna a destra della tabella iniziale. Seguendo questa procedura, si perviene al seguente risultato:

A16BC916=A16BC916
=1010 0001 0110 1011 1100 10012
=1010000101101011110010012

Per ottenere la conversione opposta, invece, bisogna procedere nella maniera inversa: si suddivide il numero binario in gruppi di 4 cifre a partire da destra (se l'ultimo gruppo contiene meno di 4 cifre, vanno anteposti tanti zeri quanti servono per completarlo) e si sostituisce ogni gruppo con il suo equivalente esadecimale. Supponiamo ad esempio di convertire in base 16 il numero in base 2: 1001011111110010112. Effettuando le operazioni descritte in precedenza si ha:

10 0101 1111 1100 10112=0010 0101 1111 1100 10112
=25FCB16
=25FCB16

Binario

Da decimale a binario

Il numero va diviso per due, senza decimali, riportando a parte il resto (o 1 o 0)

Leggendo la sequenza dei resti dal basso verso l'alto, si ottiene il numero: 110100102

Da binario a decimale.


Innanzitutto dato un numero binario bisogna prendere una cifra per volta e moltiplicarla per (2 ^ x) dove x corrisponde alla posizione della cifra. Vedendo l'esempio sarà più semplice comprendere come fare. Prendendo il nostro numero fortunato tipo il 27, ricordiamo che la sua rappresentazione in base 2 è 11011, per trasformalo di nuovo in numero binario procediamo:
posizione 4 3 2 1 0 Cifra: 1 1 0 1 1
(nota bene nei linguaggi informatici la numerazione, per semplicità di applicazione, inizia da 0 e non da 1). Quindi per concludere basterà effettuare il seguente calcolo: 1 * (2 ^ 4) + 1 * (2 ^ 3) + 0 * (2 ^ 2) + 1 * (2 ^ 1) + 1 * (2 * 0) = 16 + 8 + 0 + 2 + 1 = 27. Ora che siamo arrivati a questo punto non ci resta che passare al passo numero tre, procedimento della conversione da sistema decimale a sistema binario.


Ultime modifiche: domenica, 8 marzo 2020, 16:32