Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D La Corte in Rete
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Sergio Scippacercola » 3.Dall'analogico al digitale


Sistemi di numerazione posizionali e non

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 

Alcuni simboli della numerazione romana (non posizionale)  (www.tecnoteca.it/museo/03)

Alcuni simboli della numerazione romana (non posizionale) (www.tecnoteca.it/museo/03)


Sistemi Posizionali

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:

  • il binario (base 2) con simboli 0 1
  • l’ottale (base 8) con simboli 0 1 2 3 4 5 6 7
  • il decimale (base 10) con simboli 0 1 2 3 4 5 6 7 8 9
  • l’esadecimale (base 16) con simboli 0 1 2 3 4 5 6 7 8 9 A B C D E F

 

 

Sistemi posizionali ottale ed esadecimale – loro utilità

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

 

Tabella sinottica dei sistemi binario, ottale, decimale ed esadecimale

Tabella sinottica dei sistemi binario, ottale, decimale ed esadecimale


Rappresentazione analitica di un numero in un sistema posizionale con base b

Numero N che abbia m+n+1 cifre C  in una base b e relativo esempio di 964,23 in base 10

Numero N che abbia m+n+1 cifre C in una base b e relativo esempio di 964,23 in base 10


Addizione e moltiplicazione in binario

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  

 

 

Regole dell’ addizione e moltiplicazione in binario

Regole dell' addizione e moltiplicazione in binario


Conversioni: convertire un numero intero positivo I10 da base 10 a base 2

  • Si consideri il numero I10 rappresentato da {cn cn-1 … c0}10 con ci generica cifra decimale, e lo si divida 2.
  • Si ottiene un quoziente Qi ed un resto Ri(Ri<2). Il quoziente Qi se è maggiore o uguale a 2 può ancora essere diviso per 2 ottenendo un nuovo quoziente Qi+1 ed un resto Ri+1. Le divisioni si arrestano quando si ottiene un quoziente Qn minore di 2.
  • Per ottenere il numero I10 convertito in binario si considerano l’ultimo quoziente Qn e la successione dei resti iniziando dall’ultimo (Rn) fino al primo (R0): I10 = [Qn Rn-1 ... R1 R0]2 = I2

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

 

Conversioni: convertire la parte decimale da base 10 a base 2

  •  Si moltiplica il numero D per la nuova base 2 ottenendo una parte intera I1  più una parte decimale D1;  
  • Se la parte decimale D1¹≠0  si moltiplica ancora per 2 e così via; l’algoritmo si arresta dopo la i‑ ma moltiplicazione solo se Di=0Talvolta Di non diventa zero nemmeno dopo molte iterazioni perché il numero convertito può assumere, nella nuova base, caratteristiche differenti: cioè può diventare ad esempio periodico nella nuova base. Il procedimento si può, in ogni caso, arrestare dopo aver calcolato un prestabilito numero di cifre, in tal caso il numero convertito sarà, però, calcolato con difetto.
  • La configurazione della parte decimale nella nuova base è:              D = [I1 I2 ... In Dn].
    Esempio: La conversione di 1,12510 a base 2 è:  per la parte intera 110 = 12 e per la parte decimale 0,2510si ha:
    0,125·2 = 0 + 0,250                                                 (Di diverso da 0)
    0,250·2 = 0 + 0,500                                                 (Di diverso da 0)
    0,500·2 = 1 + 0,000                                                 (Di uguale a 0)si ha che 0,12510=0,001esattamente e, quindi il numero 1,125 convertito in base 2 sarà 1,125=1,0012. 

     

Conversioni: convertire un numero negativo I da base 10 a base 2

  • Si stabilisce il numero di bit (in numero sufficiente) in cui convertire il numero.
  • Si considera il valore assoluto del numero |-I10| e lo si converte in binario.
  • Si invertono i bit sostituendo zero dove c’è uno e viceversa.
  • Si somma uno al risultato ottenuto.
  • Se la somma risultante eccede il numero di bit previsto, si elimina il bit più significativo.

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.

Le rappresentazioni dei numeri in virgola fissa e mobile

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

  • 5 CIFRE per la parte intera
  • 3 per la parte decimale

il numero si rappresenta come 00006,240

 

Rappresentazione in virgola fissa – possibili errori nei risultati

  • Se vengono condotte operazioni aritmetiche sui numeri rappresentati in virgola fissa può accadere che i risultati eccedano il numero di cifre a disposizione in tal caso si avrà un errore di traboccamento. L’ uso della virgola fissa è sconsigliato per le applicazioni di tipo scientifico.
  • Sorgono problemi di risultato specialmente con le operazioni di addizione, moltiplicazione e divisione.

 

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.

Rappresentazione in virgola mobile

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

Codifica dei caratteri e dei simboli

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.

 

Codifica giorni

Ipotesi di codifica dei giorni della settimana

Ipotesi di codifica dei giorni della settimana


Calcolo numero minimo simboli

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  .

Potenze di 2

Per effettuare il calcolo del numero minimo di bit per la codifica o si ricorre  ai logaritmi oppure alle potenze di 2:

  • 20=1
  • 21=2
  • 22=4
  • 23=8
  • 24=16
  • 25=32
  • 26=64
  • 27=128
  • 28=256
  • etc.

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.

Misure del bit e byte

Ed, infine si riportano le misure del bit/byte e loro mutipli:

1 BYTE = 23 bit = 8 bit

Codici

I codici binari a lunghezza fissa oggi più diffusi sono :

 

  • il codice EBCDIC (Extended Binary Coded Decimal Interchange Code) usato oggi nei computer più grandi e potenti;
  • il codice ASCII  (American Standard Code for Information Interchange) base (a sette bit) (Tab. 5) ed esteso a otto bit; La  tabella ASCII usa solo sette degli otto bit e lascia l’ottavo come bit di controllo di parità/disparità. Il bit di parità/disparità serve a rendere pari (o dispari) il numero di bit presenti all’interno del byte in modo da poter controllare, in fase di ricezione dei dati, se il carattere è corretto. Ad esempio se il carattere da trasmettere è rappresentato, in sette bit, 1101 000  e quindi sono presenti 3 bit 1 viene aggiunto il bit  1 di parità / 0 di disparità per cui il carattere trasmesso diventa 1101 0001. 
  • il codice UNICODE (16 e più bit), in via di affermazione, può rappresentare 49194 caratteri ed è in grado di codificare sia i caratteri moderni che antichi.

 

  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion

Fatal error: Call to undefined function federicaDebug() in /usr/local/apache/htdocs/html/footer.php on line 93