Sistemi di numerazione
Il sistema di numerazione che utilizziamo è un sistema posizionale, in quanto usa lo stesso gruppo di simboli (dette cifre) per rappresentare i numeri, il cui valore dipende dalla posizione che la cifra stessa ha nel numero, con la posizione meno significativa più a destra.
Il sistema che usiamo è detto anche decimale perché le cifre sono 10, e vanno da 0 a 9: la posizione della cifra indica il suo valore in multipli di 10 in base alla sua posizione.
Ad esempio il numero 36143 si rappresenta indicando la posizione delle cifre:
4 | 3 | 2 | 1 | 0 | Base |
3 | 6 | 1 | 4 | 3 | 10 |
= 3*104 + 6*103 + 1*102 + 4*101 + 3*100=3614310
Il numero in questa forma è detto espresso in forma polinomiale.
Il sistema decimale non è l’unico possibile.
Ad esempio è possibile utilizzare 5 cifre (da 0 a 4) per rappresentare un numero. Questo sistema è detto sistema quinario. In questo sistema 5 diventa 10, 25 diventa 100, 125 diventa 1000 e via andare. Le cifre seguono quindi la stessa regola:
4 | 3 | 2 | 1 | 0 | Base |
4 | 0 | 2 | 3 | 1 | 5 |
= 3*54 + 6*53 + 1*52 + 4*51 + 3*50 = 267310
Allo stesso modo possiamo usare sistemi in qualsiasi base.
La base può anche essere superiore a 10. Ad esempio nel sistema esadecimale si usano i simboli 0..9 e poi si usano le lettere A,B,C,D,E,F dove A=10, B=11, e così via fino a F=15.
Ad esempio:
4 | 3 | 2 | 1 | 0 | Base |
4 | C | A | 3 | 0 | 16 |
= 4*164 + C*163 + A*162 + 3*161 + 0*160 = 31390410
La definizione generale è la seguente:
dato un numero x in una base b, esso è composto da un gruppo di cifre c0…cn-1 che possono assumere un valore da 0 a b-1. Esso è convertibile in base 10 con la seguente espressione polinomiale:
c0*bn-1+ c1*bn-2+…+ cn-1*b0 = n10
Gli esempi sopra indicati rispettano tutti questa regola.
Sistema binario
In ambito informatico è particolarmente importante il sistema binario per memorizzare i numeri, in quanto è molto conveniente creare circuiti elettronici che memorizzano due valori possibili (che corrispondono a 0 e 1).
Un numero binario si rappresenta con la definizione generale vista sopra.
Quindi per esempio col numero 10011 in base 2 avremo:
4 | 3 | 2 | 1 | 0 | Base |
1 | 0 | 0 | 1 | 1 | 2 |
= 1*24 + 0*23 + 0*22 + 1*21 + 1*20 = 1910
Proviamo però a fare la conversione opposta, cioè da decimale a binario.
L’algoritmo per convertire da decimale a binario un numero n è il seguente:
- Si trova la potenza di 2 più grande tra quelle inferiori al numero n binario da convertire, che chiamiamo b. A questo punto comincia il ciclo:
- Si divide n per b, il quoziente (che può essere 0 o 1) è una cifra del numero binario;
- Si prende il resto e si ripete il punto 2;
- Si esce quando il resto vale 0.
Proviamo un esempio con n=365, che ha come potenza massima inferiore a n=256
step | resto | potenza di 2 | quoziente |
1 | 365 | 256 | 1 |
2 | 109 | 128 | 0 |
3 | 109 | 64 | 1 |
4 | 45 | 32 | 1 |
5 | 13 | 16 | 0 |
6 | 13 | 8 | 1 |
7 | 5 | 4 | 1 |
8 | 1 | 2 | 0 |
9 | 1 | 1 | 1 |
Il numero sarà: 1011001101.