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:
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!