Oggi tratteremo un argomento molto importante per l’informatica, ovvero la convertire un numero da decimale a binario.

Il nostro sistema decimale è un sistema di numerazione posizionale, infatti i simboli assumono un determinato valore in base alla posizione in cui si trovano.

Come tutti sappiamo il valore più a sinistra rappresenta le migliaia, poi sono rappresentate le centinaia, poi le decine ed infine, la cifra più a destra rappresenta le unità. La cifra più a sinistra viene chiamata più significativa, mentre quella all’ estrema destra viene chiamata meno significativa.

Un sistema di numerazione posizionale  è quindi definito come la somma delle moltiplicazioni dei simboli (numeri) per la base. Facciamo un piccolo esempio:

Nel caso del sistema decimale 1320 equivale a scrivere (1*1000)+(3*100)+(2*10)+(0*1) dove 1,10,100 e 1000 sono chiaramente potenze del 10 (base).

Da DECIMALE a BINARIO:

L’ algoritmo che si utilizza per convertire il numero da decimale a binario viene chiamato algoritmo delle divisioni successive. Questo algoritmo divide per 2 il numero espresso in decimale, fin quando il quoziente (risultato della divisione), non è 0. Inoltre bisogna tener conto dei vari resti, che costituiranno sostanzialmente, il numero espresso in binario.

Vediamo nel dettaglio:

convertire

 

 

Procediamo adesso con un esempio, supponendo di voler convertire il numero 25:

25 : 2 = 12 con resto 1;

12: 2 = 6 con resto 0;

6 : 2 = 3 con resto 0;

3 : 2 = 1 con resto 1;

1 : 2 = 0 con resto 1:

Arrivati a questo punto non dovremmo fare altro che leggere i resti dall’ ultimo al primo. Il risultato è dunque 11001.

In definitiva 25(10) = 11001(2).

Vediamo ora una possibile implementazione in C:

Alla prossima!