Un sistema di numerazione è un modo per rappresentare dei valori numerici. Un numero si compone di cifre, cioè di simboli ad ognuno dei quali viene associato univocamente un valore diverso dagli altri.
I sistemi di numerazione moderni sono sistemi di numerazione posizionali, ovvero una stessa cifra ha un “peso” diverso dipendentemente dalla posizione che essa occupa all’interno del numero in questione. Per esempio nel numero 44, la cifra 4 che si trova a sinistra vale 10 volte di più di quella che le sta immediatamente a destra.
Da ciò nasce il concetto di base: la base indica il numero di cifre a disposizione del sistema di numerazione e, di conseguenza, quante volte di più vale la stessa cifra man mano che questa occupa una posizione sempre più a sinistra all’interno di un numero. Il sistema di numerazione decimale, o a base 10, con il quale si ha a che fare quotidianamente, ha dieci cifre diverse (da “0” a “9”) ed ogni cifra assume un significato 10 volte maggiore per ogni posizione che essa occupa spostandosi verso sinistra all’interno di un numero. Pertanto si può pensare che ad ogni posizione all’interno di un numero sia associato un “peso” che non è altro che una potenza della base del sistema di numerazione considerato.
Nel corso della presente sezione si farà riferimento all’operazione di elevamento a potenza. Tale operazione identifica due entità, l’una detta base della potenza e l’altra detta esponente. La base è il valore che viene elevato alla potenza indicata dall’esponente. Indicando con b la base e con n l’esponente, la sintassi utilizzata per rappresentare l’operazione di elevamento alla potenza n-esima della base b è la seguente
e si legge “b elevato alla n-esima potenza” o semplicemente “b alla n”. A tale scrittura viene associato il seguente significato
ovvero b moltiplicato per se stesso n volte. In particolare si definisce
Inoltre si definiscono le potenze negative come le potenze del reciproco della base, ovvero
Alcuni esempi di elevamento a potenza sono i seguenti:

![]()
|
I numeri naturali
sono i numeri interi senza segno, come 0, 1, 2, 3, ... la cui rappresentazione,
nel sistema di numerazione decimale, può essere espressa come
dove n è il numero di cifre di cui si compone il valore decimale, di sono le cifre che lo costituiscono e 10i i pesi ad esse associati. Poiché i pesi hanno base 10, si parla di sistema di numerazione decimale. Dunque, ad esempio, nel sistema di numerazione decimale, il numero 7345, costituito da 4 cifre, è “pesato” nel modo seguente:
dove n è il numero di cifre di cui si compone il valore binario, bi sono le cifre che lo costituiscono e 2i i pesi ad esse associati. Pertanto il valore binario 1101, costituito da 4 cifre, corrisponde al valore decimale 13, infatti
Da quanto illustrato, segue che un numero binario di n cifre, può rappresentare valori interi senza segno (numeri naturali) da 0 a 2n - 1.
Il sistema di numerazione binario è piuttosto scomodo in quanto, disponendo soltanto dei simboli “0” e “1”, necessita di molte cifre per rappresentare un valore. Per questo vengono utilizzate altre rappresentazioni numeriche che raggruppano più cifre binarie in un’unica cifra. Ne sono un esempio i numeri esadecimali (sistema di numerazione a base 16) che raggruppano 4 cifre binarie in ogni cifra esadecimale. Tale sistema di numerazione si basa sull’utilizzo di 16 simboli: “0”, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”, “A”, “B”, “C”, “D”, “E”, “F”. I simboli alfabetici da “A” ad “F” rappresentano i valori decimali che vanno da 10 a 15.4
Dunque il valore binario 100111012 può essere rappresentato come valore esadecimale 9D 16, infatti le prime quattro cifre binarie corrispondono al valore esadecimale “9”, 10012 = 910 = 916, e il secondo gruppo composto dalle seconde ed ultime 4 cifre binarie corrisponde al valore esadecimale “D”, 11012 = 1310 = D16. Ragionando come in precedenza, si può avere riprova di quanto affermato:
|
In genere i numeri esadecimali sono rappresentati anche posponendo il pedice “H” al numero considerato. Pertanto le scritture 9D16 e 9DH sono equivalenti. |

Per quanto riguarda i numeri interi negativi, si introduce l’operazione di complemento. Il complemento è l’operazione che fornisce il valore complementare del numero considerato, rispetto ad un numero con le stesse cifre di quello in oggetto poste ad un valore prefissato. Ad esempio, nel sistema di numerazione decimale, il complemento a 9 del numero 324 su 4 cifre (0 324) è 9675, infatti il complementare di 324 rispetto a 9999 è 9675 (9 999 - 324 = 9675).
Dunque, un numero negativo -n può essere praticamente rappresentato dal complemento a b del numero n. Quindi, nel sistema di numerazione binario, i numeri negativi sono rappresentati con il complemento a 2 del corrispondente numero senza segno. Ad esempio, il valore -1510 viene rappresentato come il complemento a 2 di 1510, ovvero, considerando 8 cifre binarie, 1510 = 000011112, quindi -1510 = 111100012. In particolare, il numero -1 è rappresentato su 8 cifre come 111111112 ovvero è il complemento a 2 di 000000012.
Da quanto illustrato, segue che un numero binario di n cifre può rappresentare, in complemento a 2, valori interi con segno, cioè sia positivi che negativi, che vanno da -2n-1 a 2n-1 - 1.
I valori negativi, ovvero rappresentati in complemento a 2, sono riconoscibili dal fatto che la prima cifra binaria ha vaolore 1.
I numeri che contengono una parte non intera sono rappresentati da due gruppi di cifre, separati da una virgola: il gruppo di cifre alla sinistra della virgola rappresenta la parte intera del numero, mentre quella a destra è la parte non intera. Ad esempio, il numero 352,74 è composto dalla parte intera 352 e dalla parte non intera 0,74 ed i pesi associati alle varie cifre sono i seguenti
mentre nel sistema di numerazione binario è
dove n è il numero di cifre di cui si compone la parte intera, m è il numero di cifre di cui si compone la parte non intera, di sono le cifre che compongono il numero decimale e bi quelle che compongono il numero binario, con i relativi pesi (10i e 2i ).
La parte non intera del numero è costituita dalle cifre che seguono la virgola, ovvero dalle cifre con pedice negativo, d-1, d-2, ... per i valori decimali e b-1, b-2, ... per quelli binari.
Per convertire la parte non intera di un numero decimale nel corrispondente valore binario, si può procedere con moltiplicazioni successive. Infatti, moltiplicando la parte non intera per la base del sistema di numerazione, si ottiene, come parte intera, la cifra più significativa della parte non intera, cioè, con riferimento al simbolismo utilizzato precedentemente, d-1 o b-1. Ad esempio, il valore decimale 0,853 moltiplicato per la base (10) dà come risultato 8,53 ovvero 8 è la cifra più significativa della parte non intera. Moltiplicando la nuova parte non intera (0,53) nuovamente per la base si ottiene 5,3 che fornisce come parte intera la seconda cifra non intera 5. Procedendo ulteriormente con le moltiplicazioni si ottengono, una dopo l’atra, tutte le cifre della parte non intera. Lo stesso ragionamento può essere applicato con un’altra base. Quindi, per trovare il valore binario corrispondente al valore decimale 18,3125 si può operare come segue: si considera innanzi tutto la parte intera, 18, a cui si applica il procedimento descritto in precedenza ottenendo 1810 = 100102. Poi si considera la sola parte non intera (18,3125 - 18 = 0,3125) e si applicano le moltiplicazioni successive appena descritte, con base 2

sono rappresentabili all’interno di un computer. Ad
esempio i numeri irrazionali, come
3,1415...10, oppure i periodici (composti da un numero
infinito di cifre dopo la virgola) come 1/310 = 0,310
0,33333...10, non sono ovviamente
memorizzabili avendo a disposizione un numero finito di celle di memoria (tali numeri possono
essere approssimati, troncandoli a partire da una determinata cifra dopo la virgola). Inoltre,
poiché il numero di cifre dopo la virgola varia in funzione del sistema di numerazione
utilizzato (ad esempio 0,210 = 0,00112
0,00110011...2), anche numeri decimali con un
numero finito di cifre dopo la virgola possono non essere rappresentabili esattamente nel
sistema di numerazione binario.
Qualunque numero (tranne il valore 0), può essere sempre rappresentato da un valore con parte intera non nulla ed inferiore alla base, moltiplicato per un’opportuna potenza della base: ad esempio 346,57 = 3,4657 × 102, Questa operazione (moltiplicazione del valore per un’opportuna potenza della base) è detta normalizzazione. La parte non intera che precede il simbolo di moltiplicazione, è detta mantissa o fraction (nell’esempio 4657) ed il valore che appare in alto a destra della base è detto esponente o caratterisitica (nell’esempio precedente, il valore 2). Quindi in notazione binaria (base 2) sarà sempre possibile per mezzo della normalizzazione, tranne nel caso del valore 0, rappresentare un valore per mezzo di determinati valori di mantissa ed esponente, tali che la sua parte intera risulti 1. Pertanto un numero non intero può essere rappresentato all’interno del computer mediante una coppia di valori di mantissa ed esponente. Poiché la virgola, durante l’operazione di normalizzazione e denormalizzazione5 subisce degli spostamenti verso sinistra o verso destra rispetto alle varie cifre che compongono il numero, tale tipo di rappresentazione viene detta anche rappresentazione in virgola mobile (floating point).
Lo standard IEEE 754 è quello utilizzato per la rappresentazione dei valori numerici in virgola mobile (normalizzati) nei computer. Tale standard prevede due tipi di rappresentazioni: single precision (precisione singola) e double precision (precisione doppia), che si differenziano dal numero di bit6 necessari per la rappresentazione dei valori stessi: entrambi utilizzano la rappresentazione dei valori della mantissa e dell’esponente come se fossero dei numeri naturali, ed un bit per la rappresentazione del segno. In particolare l’esponente è memorizzato come un numero naturale, ma per tener conto del fatto che esso potrebbe assumere anche valori negativi, è necessario sommarlo preventivamente ad un valore, detto bias, che rappresenta lo 0. In definitiva, il valore decimale corrispondente alla rappresentazione di un numero secondo lo standard IEEE 754 è dato da
dove S è il valore del bit di segno, E è il valore dell’esponente, M è il valore della mantissa e bM è il numero di bit utilizzati per la rappresentazione della mantissa.
Un valore binario memorizzato secondo questo standard, corrisponde al valore decimale espresso da
dove S è il valore del bit di segno, E è il valore dell’esponente (il bias è 127) e M è il valore della mantissa. Alcuni esempi sono riportati di seguito.
1 × 2129-127 × 1,1012 = 6,510
-1 × 245-127 × 1,10110112 = -1,7035510 × 10-59Un valore binario memorizzato secondo questo standard, corrisponde al valore decimale espresso da
dove S è il valore del bit di segno, E è il valore dell’esponente (il bias è 1023) e M è il valore della mantissa. Alcuni esempi sono riportati di seguito.
1 × 21 030-1 023 × 1,10112 = 21610
-1 × 2165-1 023 × 1,1010012 = -3,333210 × 10-259Alcuni valori assunti dalla mantissa e dall’esponente, assumono un particolare significato, riportato nella tab. 1.2.
![]()
|