Conversione tra sistemi di numerazione II

Conversione da decimale a binario

Conversione di un numero da un sistema di numerazione ad un altro. Si consideri ora il problema di convertire un numero 0 < N < 1, quindi un numero decimale o frazionario. Nell’articolo precedente abbiamo visto la conversione di Interi N.

Per la conversione delle frazioni decimali in sistema binario, si osservi che il valore della parte frazionaria di UN NUMERO REALE R espresso in binario è dato dalla espressione:

R = a-12-1+ a-2 2-2 + . . . + a-h2-h + …     moltiplicando per 2 si sottiene

2R = a-120+ a-2 2-1 + . . . + a-h2-h+1 + …

Moltiplicare per 2 il numero reale R equivale a spostare il punto binario di una posizione verso destra. se il valore di a-1 è 1 , la moltiplicazione della parte frazionaria di un reale per 2 avrà l’effetto di generare una cifra 1 alla sinistra del punto binario; se invece a-1 ha valore 0 non si avrà alcun riporto. Quindi si può dire che la conversione delle frazioni decimali in frazioni binarie può avveire mediate moltiplicazioni successive del valore dato per 2.

Se il prodotto è tale da generare un riporto alla sinistra del punto decimale, la cifra binaria più significativa a-1 avrà valore 1, in caso contrario avrà valore 0. La parte frazionaria del risultato di questo prodotto deve essere di nuovo moltiplicata per 2 ed analizzato l’eventuale riporto il cui valore sarà quello del bit immediatemente successivo a quello considerato.  Il procedimento si applica in modo iterativo sino a ottenere il numero di bit voluti.

Esempio: conversione in base binaria di   0.8125 decimale

 

0.8125 * 2 1.625 1
0.625 * 2 1.25 1
0.25 * 2 0.50 0                          0.812510 = 0.11012
0.5 * 2 1 1

Esempio: conversione in base binaria di 0.3 decimale

0.3 * 2 0.6 0
0.6 * 2 1.2 1
0.2 * 2 0.4 0                             0.310 = 0.010012
0.4 * 2 0.8 0
0.8 * 2 1.6 1
0.6 * 2   1.2 1

Il numero 0.310 è periodico .

Conversione da binario a decimale

Si consideri ora il problema della conversione di un numero 0 < N < 1.

Esempio: esprimere il valore 0.112 in base 10

0.112 = 1 * 21 + 1 * 22 = 0.5 + 0.25 = 0.7510 

La conversione della rappresentazione nei sistemi ottale ed esadecimale alla rappresentazione binaria è più semplice: poichè 8 e 16 sono potenze di 2 si ha un’immediata corrispondenza con la rappresentazione binaria.

Conversione da ottale a binario

Ogni cifra ottale viene tradotta nel corrispondente gruppo di tre cifre binarie ottenendo la rappresentazione binaria.

3728

0112    1112    0102

3728 = 111110102

Da esadecimale a binario

Per la base esadecimale, essendo 16 = 24, basta operare per gruppi di quattrocifre binarie anziché di tre; ad esempio:

5AF116 = 0101 1010 1111 0001

Da esadecimale a binario

Esadecimale Binario Esadecimale Binario
0 0000 8 1000
1 0001 9 1001
2 0010 A 1010
3 0011 B 1011
4 0100 C 1100
5 0101 D 1101
6 0110 E 1110
7 0111 F 1111