Viene definito sistema di numerazione o numerazione l’insieme delle regole e dei simboli per rappresentare i numeri.
Assumono particolare caratteristica i sistemi di numerazione detti posizionali.
La numerazione romana, ad esempio (cfr figura per i suoi simboli principali), non è un sistema di numerazione posizionale perché il valore di ogni cifra dipende sia dalla sua posizione nell’ambito del numero ma anche da più di una regola.
Esempio: IV è diverso da VI ed assumono due valori differenti: cioè il valore è differente se la cifra I si trova a sinistra o a destra di una cifra più grande
Per i sistemi posizionali si definisce base il numero dei simboli diversi che si possono utilizzare. La base della numerazione in cui è espresso il numero è indicata in basso a destra; quando si omette la base si intende in base 10.
Sistema posizionale significa, che ogni numero è scomponibile secondo le potenze della sua base. Considerando un numero in base 10, ad esempio 456, la sua scomposizione è 4×102 + 5x 101+6×100.
I sistemi posizionali più usati sono:
Nella tabella sinottica a fianco è possibile ricavare le corrispondenti rappresentazioni dei numeri nelle principali basi (binario, ottale, decimale ed esadecimale)
L’esadecimale e 1′ottale vengono ormai usati solo per rappresentare stringhe di bit in modo sintetico. Si può verificare, infatti, che 4 bit sono rappresentati da una cifra esadecimale, mentre 3 bit da una ottale.
Ad esempio si voglia convertire la stringa binaria 0101100012 in un numero ottale. Si raggruppano le cifre a tre a tre iniziando da destra 010 110 0012 e ad ogni terna di cifre binarie si sostituisce la corrispondente cifra ottale (cfr. Tab. 1).Al numero 0012 corrisponde in ottale 18 , a 1102 corrisponde 68, a 0102 corrisponde 28 e quindi:010 110 0012 = 2618 .
Se si desidera la rappresentazione esadecimale del numero 0101100012 basta raggruppare virtualmente le cifre a quattro a quattro da destra e poi convertirle in cifre esadecimali. La precedente stringa diventa 1011 00012 = B116.
Con il sistema binario si possono eseguire tutte e quattro le operazioni.
Si riportano di seguito solo le regole dell’addizione (+) e della moltiplicazione (*) nel sistema binario con qualche esempio.
Si ricorda che le operazioni di moltiplicazione, sottrazione e divisione possono sempre essere ricondotte all’addizione che è l’operazione fondamentale.
Esempi :
1012 + 1012 = 10102 ;
1112 + 1112 = 11102
112 . 102 = 1102 ;
1002+1102=110002
Esempio: conversione di N10 = 125 in binario:
125=62·2+1 62=31·2+0 31=15·2+1 15=7·2+1 7=3·2+1 3=1·2+1
si ha che N10= 12510=[1111101]2.
Verifica:
[111101]2 = 1·25 +1·24 +1·23 +1·22 +0·21 +1·20 = 64+32+16+8+4+1=125
Per verificare se il numero negativo è stato correttamente convertito basta sommare il numero positivo (in base 2) a quello negativo (in base 2) ed il risultato deve essere zero (sempre considerando che se la somma risultante eccede il numero di bit previsto, si elimina in bit più significativo.
Esempio: per convertire il numero -1510 su cinque cifre binarie; si codifica il valore assoluto del numero (½-1510½ =011112); si invertono i bit sostituendo zero dove c’è uno e viceversa (100002); si somma uno al risultato ottenuto (100012);
La somma non eccede cinque bit e quindi -1510=100012.
Verifica: 011112+100012=1000002 e, poiché deve essere su cinque cifre si elimina la cifra più significativa e si ottiene 000002.
Rappresentazione in virgola fissa
La rappresentazione in virgola fissa consiste nel rappresentare qualsiasi numero reale prefissando il numero di cifre per la parte intera e per la parte decimale:
Esempio: n=6,24 stabilendo che
il numero si rappresenta come 00006,240
Esempi.
Dati i numeri 87,2 e 976,8 se per la parte intera si prefissano 3 cifre e 1 per le decimali i numeri saranno così rappresentati:
087,2 e 976,8 la loro somma sarà 064,0 invece di 1064,0 perchè il risultato eccede il numero di cifre intere.
Identica sorte anche se moltiplichiamo i due numeri il risultato sarà 176,9 invece di 85176,96.
La rappresentazione in virgola mobile consiste nel rappresentare qualsiasi numero reale N nella forma:
N = M bx = ±(C1 C2 … Cn) b±x
Dove M viene detta mantissa di m cifre, b è la base del sistema di numerazione adottato, x è l’esponente, detto caratteristica ed indica di quanti posti deve essere spostata la virgola per ottenere R. La rappresentazione in virgola mobile viene detta normalizzata se la prima cifra della mantissa M è diversa da zero, il che avviene solo se 0.1 ≤ M < 1 .
Esempi.
Il numero 0,00045 in virgola fissa normalizzata è 0,45.10-3 in tal modo sono stati eliminati gli zeri dopo la virgola che non sono significativi.
Altro esempio di numero normalizzato: +0,4521 x 10+2
Non normalizzati: 0,004521 x 10+4 +452,1 x 10-1
I numeri sono convertiti direttamente in binario ma possono essere anche codificati con codici opportuni. I caratteri, invece, devono essere sempre codificati in binario secondo opportuni codici. Per codificare i caratteri e tutti i simboli utilizzati nella scrittura, sono stati creati appositi codici binari di conversione.
Viene definito codice una tabella che fa corrispondere ad ogni carattere o simbolo una stringa di bit:
la codifica è una legge di corrispondenza che associa ad ogni sequenza k di caratteri o simboli del testo originario,
almeno una sequenza di m bit nel testo codificato.
Se si usa sempre un numero fisso di bit (ad es. otto bit), il codice si dice a lunghezza fissa. Il codice Hollerith era un codice a lunghezza fissa (12 bit), esistono anche codici a lunghezza variabile, tipico esempio è il famoso codice Morse che usa punto e linea per codificare i caratteri ed i simboli. Se si dispone di un solo bit esso può assumere solo due valori (zero o uno) e se associamo ad ogni valore un carattere possiamo associare solo due caratteri ad es. A a zero e B ad uno. Volendo codificare quattro lettere dobbiamo disporre di almeno due bit perché con due bit abbiamo a disposizione quattro combinazioni (00, 01, 10, 11) che sono associabili a quattro caratteri ( ad es. A, B, C, D) e così via.
In generale, detto B il numero dei simboli da utilizzare per le combinazioni, m il numero delle cifre da combinare, il numero C di combinazioni diverse che si vogliono ottenere è dato da:
C = Bm
Si calcola, facilmente che, per codificare 64 caratteri e simboli si deve costruire un codice a sei cifre, per codificare 128 caratteri ci vuole un codice a sette bit e così via. Infatti per calcolare di quanti bit deve essere composto il codice a lunghezza fissa, detto N il numero di caratteri da codificare, il numero di bit necessari sarà dato dal logaritmo in base 2 di N arrotondato per eccesso:
m = log2 C
Esempi Se si vogliono codificare C= 4 caratteri sono sufficienti solo due bit. Se si desiderano codificare sette caratteri (ad es. i giorni della settimana) m è uguale a 2,81 che, arrotondato, è uguale a 3, ma con tre bit si possono formare ben otto configurazioni distinte ed in tal caso il codice è sovrabbondante perché resta una configurazione di bit (111) a cui non corrisponde un giorno della settimana .
Per effettuare il calcolo del numero minimo di bit per la codifica o si ricorre ai logaritmi oppure alle potenze di 2:
Ad esempio se si vogliono codificare 200 simboli differenti poiché C = Bm , e 200 si colloca tra 27=128 e 28=256 sette bit sono insufficienti perché si codificherebbero solo 128 simboli mentre con otto bit si codificano fino a 256 e, quindi, si devono scegliere otto anche se sono in eccesso le combinazioni di bit. Se si vogliono codificare 32 simboli sono indispensabili proprio cinque bit perchè con cinque bit si possono effettuare 32 combinazioni di bit.
Ed, infine si riportano le misure del bit/byte e loro mutipli:
1 BYTE = 23 bit = 8 bit
I codici binari a lunghezza fissa oggi più diffusi sono :
1. Introduzione all'informatica
2. Le principali strutture dei dati
4. Hardware: gli elementi fondamentali dell'architettura di un elaboratore elettronico.
5. Le memorie, organizzazione dei dati e interfacce
6. La gestione delle memorie, indicatori di prestazioni e tassonomia dei computer
7. Software di sistema e applicativo
8. Sistemi informatici e modelli di database
9. Le forme normali e l'algebra relazionale
10. Lo sviluppo del software in azienda
12. La trasmissione dei dati e reti