Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

37
Settembre 2002 IFTS2002 Acq. Dati Remoti : INFORMATICA 1 Rappresentazione dell’informazione (1) D ato un insiem e dielem entidiinform azioneI, larappresentazione (o codifica )diciascun elem ento è una funzione: f : I C U n codice dell'insiem e C è una aggregazione disim bolidiun insiem e che costituisce l'alfabeto di supporto diC. La decodifica è una funzione che opera la trasform azione inversa: g : C I. D efinizione form ale m olto am pia, sipresta ad applicazioniin ogni cam po Esem pio:applicazioniin cam po linguistico: La funzione di codifica di un certo insiem e,per esem pio, gli oggetti contenuti in una stanza o gli anim ali di una certa fam iglia , può essere: a) Il vocabolario italiano che fa corrispondere ad ogni elem ento dell'insieme il suo codice (nom e) , formato utilizzando i 26 sim bolidell'alfabeto delle lingue occidentali. b) Il vocabolario della lingua russa che si appoggia invece all' alfabeto di supporto costituito daicarattericirillici.

Transcript of Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Page 1: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

1

Rappresentazione dell’informazione (1)Dato un insieme di elementi di informazione I, la rappresentazione (o codifica) di ciascun elemento è una funzione:

f : I C Un codice dell'insieme C è una aggregazione di simboli di un insieme che costituisce l'alfabeto di supporto di C. La decodifica è una funzione che opera la trasformazione inversa:

g : C I. Definizione formale molto ampia, si presta ad applicazioni in ogni

campo Esempio: applicazioni in campo linguistico: La funzione di codifica di un certo insieme, per esempio, gli oggetti contenuti in una stanza o gli animali di una certa famiglia, può essere:

a) Il vocabolario italiano che fa corrispondere ad ogni elemento dell'insieme il suo codice (nome), formato utilizzando i 26 simboli dell'alfabeto delle lingue occidentali.

b) Il vocabolario della lingua russa che si appoggia invece all'alfabeto di supporto costituito dai caratteri cirillici.

Page 2: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

2

Rappresentazione dell’informazione (2)L'esempio è una codifica in chiaro. Per proteggere l'informazione si può ricorrere a codici cifrati. Giulio Cesare adottò per i suoi messaggi un codice che slittava di 3 posizioni ciascun carattere nell'elenco circolare dei 26 caratteri dell'alfabeto (a z segue a). Con questo codice la parola: "Zorro" diventa: "Cruur".

Una codifica può essere: non ambigua quando la funzione di codifica è iniettiva, cioè ad

elementi distinti in I corrispondono elementi distinti in C. non ridondante quando il numero di elementi di C è uguale a quello di I

(NC=NI); ridondante quando: NC>NI; ambigua quando: NC<NI. Altre importanti caratteristiche di un codifice sono: economicità (numero di simboli mediamente utilizzati per un elemento

di informazione); semplicità dell'operazione di codifica (e di decodifica); semplicità di trattamento dell'informazione codificata.

Page 3: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

3

Rappresentazione dei NUMERI NATURALI (1)

I N U M E R I N A T U R A L I s o n o i n u m e r i i n t e r i p o s i t i v i : 0 , 1 , 2 , 3 , 4 , 5 , 6 , … . . U n a p o s s i b i l e c o d i f i c a : l i n g u a i t a l i a n a D i f f i c o l t à : s o n o i n f i n i t i . E ' n e c e s s a r i o r i c o r r e r e a c o d i c i c o m p o s t i U n a r a p p r e n t a z i o n e c o m p a t t a : s i s t e m a d i n u m e r a z i o n e . Q u e l l o a d o t t a t o n o r m a l m e n t e è i l s i s t e m a d e c i m a l e p o s i z i o n a l e , b a s a t o s u l l e p o t e n z e c r e s c e n t i d e l 1 0 . A l f a b e t o c o n d i e c i s i m b o l i : 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 . P o s i z i o n a l e : v a l o r e d i v e r s o ( p e s o ) a s e c o n d a d e l l a p o s i z i o n e . L a c i f r a a l l ' e s t r e m a d e s t r a , c i f r a m e n o s i g n i f i c a t i v a e s p r i m e l e u n i t à ( p e s o 1 0 0 ) , q u e l l a a d i a c e n t e a s i n i s t r a e s p r i m e l e d e c i n e ( p e s o 1 0 1 ) , l a s u c c e s s i v a e s p r i m e l e c e n t i n a i a ( p e s o 1 0 2 ) e c o s ì v i a , f i n o a l l a c i f r a a l l ' e s t r e m a s i n i s t r a d e t t a c i f r a p i ù s i g n i f i c a t i v a , c h e a v r à p e s o 1 0 n - 1 . I l n u m e r o n a t u r a l e , d u e c e n t o t r e n t a c i n q u e n e l s i s t e m a d i n u m e r a z i o n e d e c i m a l e s i s c r i v e 2 3 5 e d i l s u o v a l o r e è :

012 105103102

Page 4: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

4

Rappresentazione dei NUMERI NATURALI (2)

Il codice unario (non posizionale) utilizza un solo simbolo. Se adottiamocome simbolo un tratto verticale: I , il numero naturale zero si scriverà: I , tresi scriverà: IIII , la codifica di ventitre richiederà 24 tratti verticali, mentre lasua codifica in decimale richiede due soli simboli il 2 e il 3.Il codice unario non è "economico".Tutti i codici numerici utilizzati sono posizionali ed hanno necessariamentebase b 2.Simbologia: N indica un numero naturale, a prescindere dalla sua rappresentazione, Nb indica un numero naturale rappresentato in base b, una sequenza di cifre senza pedice rappresenta un numero naturale espresso

in base 10 una sequenza di cifre con pedice b rappresenta un numero espresso in base

b 10.01221 ...... cccccN mmb

00

11

22

22

11 ........ bcbcbcbcbcN m

mm

m

Page 5: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

5

Rappresentazione dei NUMERI NATURALI (3)

La formula (1) stabilisce una corrispondenza biunivoca tra i numerinaturali e la loro codifica in base b.Ciascun numero naturale ha un codice in base b ed uno solo ed aciascun codice in base b corrisponde un numero naturale ed uno solo.

E' ovvio che qualunque sia la base b la formula (1), calcolataadoperando l'aritmetica decimale, costituisce anche un metodo diconversione di un numero dalla base b in decimale.

Esiste una tecnica generale per convertire un numerodecimale in una altra base o da una certa base ad un'altra.

(1)01221 ...... cccccN mmb

1

0

m

i

ii bcN

Page 6: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

6

Conversione di un codice in una diversa base

La tecnica è molto semplice ed intuitiva.

Se il numero è espresso in una base b1 e si vuole convertirlo inuna base b2, basta dividere, prima il numero e, poi, i successiviquozienti per la base b2 espressa nella base b1.Il codice del numero nella nuova base sarà formato dai resti delledivisioni successive presi ordinatamente dall'ultimo al primo.Il resto della prima divisione, cioè, costituirà la cifra menosignificativa, mentre quello dell'ultima la cifra più significativa. E'importante tenere presente che i resti sono sempre espressi nellabase di partenza e quindi è necessario convertirli nella base diarrivo.Le divisioni tra i due numeri nella stessa base vanno effettuateseguendo le regole della aritmetica corrispondente che è per tuttele basi analoga a quella decimale. Qualche difficoltà pratica nasceper basi superiori a 10.

Page 7: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

7

L’algoritmo di conversione decimale binario

n/2 resto64 0 b0

32 0 b1

16 0 b2

8 0 b3

4 0 b4

2 0 b5

1 1 b6

n/2 resto65 1 b0

32 0 b1

16 0 b2

8 0 b3

4 0 b4

2 0 b5

1 1 b6

n/2 resto98 0 b0

49 1 b1

24 0 b2

12 0 b3

6 0 b4

3 1 b5

1 1 b6

n/2 resto43 1 b0

21 1 b1

10 0 b2

5 1 b3

2 0 b4

1 1 b5

4310=1101012

6410=10000002 6510=10000012

9810=11000102

Si osservi che il resto delle divisioni successive è anche la parità del numero che si divide (0 pari 1 dispari)

Consiste nell’eseguire divisioni successive per 2 (la base) e trattenere il resto (0 o 1) che costituisce il bit i-mo a partire dal meno significativo (bit 0)

Page 8: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

8

Esercizi sulla conversione da una base ad un’altra

• Convertire da base 2 a base 10:

0110011

10101100

1100110011

• Convertire in base 10 i seguenti numeri:

1022103

4312045

50367

198A12

Page 9: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

9

LUNGHEZZA di un numero naturale (1)

La lunghezza di un numero naturale è il numero di cifre necessario per esprimerlo in una data base.Si può verificare facilmente che più piccola è la base e maggiore sarà il numero di cifre necessario per esprimere un certo numero.ad es. 10232 =1111111111

102310=1023102316=3FF

La lunghezza di un numero decresce al crescere della base di codifica. Di conseguenza il sistema di numerazione binario dal punto di vista della lunghezza di rappresentazione dei numeri naturali è la scelta peggiore possibile, certamente molto peggiore del sistema decimale.

Page 10: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

10

La lunghezza di un numero cresce al diminuire della base (2)

2 4 6 8 10 12 14 162

4

6

8

10

12

14

16

18

20

1000

10000

100000

1000000

basen

. o

f d

igits

Lunghezza del codice in funzione della base per i numeri, 1000-10000-100000-1000000

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2.0x1040

5

10

15b=2

b=3

b=8 b=10

b=16

Numero da rappresentare (0-20000)

n. D

i cifr

e

Lunghezza della rappresentazione in base b

lunghezza della rappresentazione in funzione della base 2-3-8-10-16

Page 11: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

11

LUNGHEZZA di un numero naturale (3)Nel sistema di numerazione decimale il massimo numero esprimibilecon 3 cifre è 999 cioè: 103-1.Nel sistema binario con 8 cifre si esprime il numero

11111111Poiché 11111111+1=10000000=28=128 sarà 11111111=1272

In generale quindi con base b ed n bits si potrà esprimere al massimoil numero:

bn-1

La relazione inversa di questa ci dirà che la lunghezza del numero Nb

è:mb= logb (Nb) +1

Essendo la funzione logaritmo una funzione sempre crescente, si puòdire che la lunghezza cresce col numero in qualunque base.Queste relazioni sono illustrate dai diagrammi seguenti.

Page 12: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

12

LUNGHEZZA di un numero naturale (3)N. di bit necessari a codificare numeri naturali in base 2

(lunghezza dei numeri naturali in base 2

0 5 10 15 20 25 30 351

1.5

2

2.5

3

3.5

4

4.5

5n. di bit necessari a codificare un numero

n. da codificare

n. d

i bit

occo

rren

ti

n log2(n) N of bits Binary code1 0 1 [0 0 0 0 0 1]2 1 2 [0 0 0 0 1 0]3 1.585 2 [0 0 0 0 1 1]4 2 3 [0 0 0 1 0 0]5 2.322 3 [0 0 0 1 0 1]6 2.585 3 [0 0 0 1 1 0]7 2.807 3 [0 0 0 1 1 1]8 3 4 [0 0 1 0 0 0]9 3.17 4 [0 0 1 0 0 1]10 3.322 4 [0 0 1 0 1 0]11 3.459 4 [0 0 1 0 1 1]12 3.585 4 [0 0 1 1 0 0]13 3.7 4 [0 0 1 1 0 1]14 3.807 4 [0 0 1 1 1 0]15 3.907 4 [0 0 1 1 1 1]16 4 5 [0 1 0 0 0 0]17 4.087 5 [0 1 0 0 0 1]18 4.17 5 [0 1 0 0 1 0]19 4.248 5 [0 1 0 0 1 1]20 4.322 5 [0 1 0 1 0 0]21 4.392 5 [0 1 0 1 0 1]22 4.459 5 [0 1 0 1 1 0]23 4.524 5 [0 1 0 1 1 1]24 4.585 5 [0 1 1 0 0 0]25 4.644 5 [0 1 1 0 0 1]

Page 13: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

13

Gestione di numeri binari di lunghezza fissa

L'economicità hardware del codice binario e la semplicità della suaaritmetica lo impongono nella realizzazione di qualsiasiapparecchiatura elettronica digitale. Questo è giustificato da problemi dirumore; distinguere tra due soli livelli di una grandezza fisica riduce almassimo la probabilità di errore.Gli elaboratori di informazione lavorano a numero fisso di cifrebinarie. Si è passati rapidamente da 8 a 16 a 32 bit ed ora siamo a 64 bitma il limite rimane.L'adozione di un numero fisso di cifre (parola macchina di lunghezzafissa) comporta che nella rappresentazione di numeri naturali moltopiù piccoli del massimo numero esprimibile con le cifre adisposizione, le cifre non utilizzate dovranno essere comunqueriempite con "0" (zeri non significativi) e se il risultato di una sommao una moltiplicazione supera il massimo numero esprimibile si avràun traboccamento di bit dal campo a disposizione (overflow).

Page 14: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

14

Rappresentazione dei numeri interi

La rappresentazione dei numeri naturali (numeri interipositivi o nulli) sul piano pratico non apre molte prospettivedi calcolo, è necessario rappresentare almeno i numeri interi(positivi e negativi) per poter essere in grado di operaresomme algebriche.

Tra le infinite possibili rappresentazione dei numeri interiquelle di maggiore interesse sono: Rappresentazione con segno; Rappresentazione all'intervallo (in binario,

complemento a due)

Queste rappresentazioni si possono adottare con qualsiasibase sia pari che dispari perché le proprietà su cui si basanosono generali.

Page 15: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

15

Rappresentazione dei numeri interi con segno

Si riserva al simbolo del segno la posizione all'estrema sinistra, quella che corrisponderebbe alla cifra più significativa di un numero naturale. Di solito si associa al segno positivo il simbolo "0" ed a quello negativo "1". Con questa tecnica il campo numerico a disposizione, in una certa base b e con m cifre, è di bm-1-1 numeri positivi ed altrettanti negativi, oltre allo "0" che ha addirittura due rappresentazioni perché, ovviamente, ci sarà lo 0 positivo (tutti "0" con la cifra segno a "0") e quello negativo (tutti "0" con la cifra segno ad "1"). Se si adotta la notazione Ci

(m) per indicare le m cifre di una rappresentazione numerica i due "0" della rappresentazione con segno sono 0(m) e 1 0(m-1).

Page 16: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

16

Rappresentazione dei numeri interi con segno (2)

In binario se si lavora con numeri di sole 3 cifre, i tre numeripositivi rappresentabili sono: 1: 0012 2: 0102 3: 0112;quelli negativi sono: -1: 1012 -2: 1102 -3: 1112.Le due rappresentazioni dello "zero" sono: 0002 1002.

Con questa rappresentazione le somme algebriche dipendono dal segno concorde o discorde dei due numeri

Page 17: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

17

Rappresentazione dei numeri interi con segno (3)

Il principale problema di questa rappresentazione è che le somme algebriche vanno eseguite in modo diverso in dipendenza dal segno concorde o discorde dei due numeri.

ad es la somma m+n se m=5 ed n=-7 va eseguita facendo la sottrazione di m da -n e poi cambiando il segnose m=5 ed n=-3 occorre sottrarre -n da m e poi cambiare il segno

Quindi occorre disporre di un sommatore e di un sottrattore, scambiare tra di loro i moduli dei numeri e poi attribuire segni diversi a seconda dei casi. Tutte operazioni che richiedono decisioni logiche dipendenti dai dati in ingresso.

Page 18: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

18

Rappresentazione per complemento all’intervallo

Per ottenere la rappresentazione con segno negativo di un numero si sottrae,nell'aritmetica della base b, il numero dato, formato da m cifre, dalla baseelevata alla potenza m-esima.Con m cifre in base b si possono rappresentare i numeri compresi tra:

(-bm/2)+1 e (+bm/2)-1

Anche in questo caso conviene considerare l'ipotesi di base pari, vistoche lo sono tutte le basi che hanno un reale interesse, ma non è difficileadattare i risultati a basi dispari.

I numeri positivi sono rappresentati nell'intervallo [0, (bm/2)-1] e quellinegativi nell'intervallo [(-bm/2+1)-1] ottenendoli dalla formula: bm-N.

Si ha una sola rappresentazione dello "0", quella indicata con 0 (m).

Esiste una combinazione che per simmetria non si usa:

)1()0(2

mb

Page 19: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

19

Rappresentazione per complemento all’intervallo

000

001

010

011100

101

110

1110

1

2

3

-1

-2

-3

La rappresentazione trae spunto dalle proprietà dell’overflow: invece di sottrarre un numero dall’altro si aggiunge, ruotando sempre in senso orario (utilizzando quindi solo somme), un numero tale da raggiungere il risultato giusto, a meno dell’overflow, quindi muovendosi sul cerchio in figura

(-4)

1-1=001-001=001+111=1000=0 a 3 bit

3-3=011-011=011+101=1000=0 a 3 bit

3-1=011-001=011+111=1010=2 a 3 bit

-1-2=111+110=1101=-3 a 3 bit

0-2=000+110=110 = -2 (qui non c’è overflow)

1+2=001+010=011=3 2 (qui non c’è overflow)

Page 20: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

20

Rappresentazione per complemento all’intervallo (2)

000 0

001 1

002 2

…..

…..

498

499 499

500 -500

501

502

503

…..

…..

996

997 -3

998 -2

999 -1

n n

-n m = 1000-n

1000

1000

1000

n+m = 1000 = 0 (a 3 cifre)

+

-

Si rappresenta con il numero positivo

Si rappresenta con il numero positivo

base 10 – 3 cifre

Page 21: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

21

Rappresentazione per complemento all’intervallo (3)

In base decimale, ad esempio, la rappresentazione del numero di 3 cifre237 col segno negativo:

- 237si ottiene dall'operazione decimale:

1000 - 237 = 763;per cui l'operazione:

463 - 237 = 226si trasforma in:

463 + 763 = 1 226 che, ignorando l'overflow (4a cifra), da il risultato atteso.

I numeri positivi vanno da 001 a 499, quelli negativi da 999 a 501 e lacombinazione non usata è 500 che, cominciando con 5, è negativo.

E' banale riscontrare che questa rappresentazione si può anche ottenere daquella della base diminuita aggiungendo un 1 dopo la complementazione.

Page 22: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

22

Rappresentazione binaria in complemento a due

In base binaria e con 3 sole cifre, i numeri positivi rappresentabilisono:

1, 2, 3che corrispondono alle combinazioni:

0012 0102 0112

lo zero è:000

i numeri negativi sono:- 1, - 2, - 3

e si rappresentano nella forma:1112 1102 1012.

La combinazione non usata è:1002

e corrisponde a - 4.

Page 23: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

23

Rappresentazione binaria in complemento a due (2)0000 0

0001 1

0010 2

0011 3

0100 4

0101 5

0110 6

0111 7

1000 -8 8=16-8

1001 -7 9=16-7

1010 -6 10=16-6

1011 -5 11=16-5

1100 -4 12=16-4

1101 -3 13=16-3

1110 -2 14=16-2

1111 -1 15=16-1

n>0 n

m<0 k = 8+m

1000

n+k = n+m+810 = n2+m2+10002 = n2+m2 (a 3 bit)

+

-

Si rappresenta con il numero positivo

Si rappresenta con il numero positivo

Se n ed m sono due numeri interi esprimibili a b bits, n+m è esprimibile a b+1 bits.

Page 24: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

24

Conclusioni

Le rappresentazioni dei numeri negativi ottenute attraversoun'operazione di complementazione consentono di effettuaresomme algebriche senza preventivo esame del segno delnumero, utilizzando sempre e solo un circuito sommatore.

La complementazione all'intervallo può essere eseguita cifraper cifra, aggiungendo poi 1. Nel caso binario lacomplementazione all'intervallo si riduce allacomplementazione del numero bit a bit.

Il principale vantaggio dell'aritmetica in complemento a duene ha fatto lo standard generalmente utilizzato nelle CPU

Page 25: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

25

La codifica BCD (Binary Coded Decimal)

L'elettronica degli elaboratori è binaria, mentre la mente umana èabituata a ragionare in decimale. Per mettere d'accordo i due mondi, sononati i codici BCD, da Binary Coded Decimal.Si parla di codici, al plurale, perché possono essere infiniti, visto cheinfinite possono essere le codifiche binarie dei dieci simboli del sistemadecimale.Quando si parla di codice BCD senza specificare il tipo di codice binarioadottato ci si riferisce necessariamente a quello posizionale basato sullepotenze crescenti del 2, detto anche codice binario "puro" o"naturale" o, anche, 8 4 2 1 (1 2 4 8) con riferimento ai pesi dei 4 bitletti da quello più significativo (MSB) verso quello meno significativo(LSB) (o viceversa).Essendo 10 i simboli da codificare (da 0 a 9) sono necessari 4 bit che,come è noto, possono dar luogo a 16 combinazioni che in binario purocorrispondono ai numeri naturali da 0 a 15.Poiché le 6 combinazioni dal 10 al 15 non si usano, la codifica BCD èridondante.

Page 26: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

26

La codifica BCD (Binary Coded Decimal) (2)

Naturalmente, la codifica BCD viene usata solo in funzione diinterfaccia per rendere comprensibile ad operatori umani i risultatidi una elaborazione numerica binaria.La codifica BCD del numero è, infatti, una operazionepropedeutica alla sua visualizzazione su un display numericodecimale.I quattro bit di ciascuna cifra codificata BCD vengono inviati adun circuito di decodifica che provvederà a pilotare il visualizzatoredella cifra corrispondente.

E' opportuno sottolineare che, mentre la codifica binaria è il primopasso per approdare ad un sistema numerico che porta poiall'aritmetica binaria, non esiste una aritmetica BCD perchè inipotetiche operazioni aritmetiche su codici BCD bisognerebbeapplicare ai codici binari dei numeri da 0 a 9 l'aritmeticadecimale, che non gode certo della semplicità di quella binaria.

Page 27: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

27

NUMERI REALI in virgola fissa

La rappresentazione dei numeri reali in virgola fissa assegna h degli m bitdella parola (o del gruppo di parole) alla parte intera ed i rimanenti k =m - h bit alla parte frazionaria del numero.La virgola è collocata sempre dopo le prime h cifre, indipendentementedal loro valore. Se il numero da rappresentare è piccolo le cifresignificative saranno precedute da "0".

E' banale rendersi conto che il campo numerico rappresentabile in virgolafissa si riduce moltissimo perché il contributo della parte frazionaria (kcifre) aggiunge al massimo una unità al campo delle h cifre intere.Il peso delle cifre dopo la virgola sarà: b-1, b-2, b-3 ecc...

Se si ha a che fare con un sistema binario con una parola macchina a 32bit e si immagina di utilizzare 20 bit per la parte intera con segno e 12bit per quella frazionaria, i numeri rappresentabili sono quelli compresitra (-219+1 e +219-1) ed i 12 bit frazionari per definizione avranno unvalore globale non superiore ad una unità. Orientativamente 12 bit binaricorrispondono a poco più di 3 cifre significative decimali.

Page 28: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

28

NUMERI REALI in virgola fissa

Qualche esempio di rappresentazione di numeri in virgola fissa in base 2.510 = 1/2=0000.10002

.2510 = 1/4=0000.0100 2

.12510 = 1/8=0000.0010 2

.062510 = 1/16=0000.0001 2

1/310 = 0000.0101010101010 2 evidentemente periodico3.510 = 00011.10002

5.12510 = 00101.01002

17.562510 = 00010001.100102

26.187510 = 00011010.001102

125.94210 = 01111101.1111000100 2

5.941235,810 = 00000101.111100001111010011002

14.2310 = 00001110.001110101110000101002

125.942

1101.1111000100

Page 29: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

29

Rappresentazione dei numeri in virgola mobile

Limitazione del numero di bit rende la rappresentazione in virgola fissadei numeri inadeguata, per calcoli complessi.Con parole di 64 bit si possono rappresentare numeri interi fino a 18cifre decimali. Ma gli elaboratori a 64 bit esistono oggi mentre certi tipi dicalcoli scientifici si fanno da decenni.Le soluzioni messe a punto per fare calcoli significativi con pochi bitpermettono di sfruttare meglio anche i molti bit di oggi.

La dizione "virgola mobile" è abbastanza esplicita, si è trovato il modo disvincolare la virgola da una posizione fissa nel numero.

Il metodo si rifà alla tecnica del calcolo esponenziale che è sempre statousato nei calcoli scientifici a mano tutte le volte che si aveva a che farecontemporaneamente con numeri molto piccoli e molto grandi.Es.: .234E-5 .984E9 .280E0

Il numero N in base b viene rappresentato come N = m be dove m èl'iniziale di mantissa (cifre significative) ed e quella di esponente.Ovviamente N è determinato quando sono noti m ed e.

Page 30: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

30

Rappresentazione dei numeri in virgola mobile (2)R a p p r e s e n t a z i o n e n o r m a l i z z a t a ; m e d e s o n o s c e l t i i n m o d o c h e m = 0 .

1 / b m 1L a m a n t i s s a h a s e m p r e l a s t r u t t u r a 0 , x y z . . . . I c a r a t t e r i " 0 , " p o s s o n o e s s e r eo m e s s i s e n z a p e r d i t a d ' i n f o r m a z i o n e .L a r a p p r e s e n t a z i o n e d i u n n u m e r o r e a l e p u ò e s s e r e l i m i t a t a a l l a c o p p i a d in u m e r i ( m , e ) . E s e m p i o : I l d e c i m a l e 4 6 3 , 7 5 s a r à : ( 4 6 3 7 5 , 3 )L a s u a r a p p r e s e n t a z i o n e n o r m a l i z z a t a è : 0 , 4 6 3 7 5 x 1 0 3 .

M a n t i s s a e d e s p o n e n t e d e b b o n o p o t e r a s s u m e r e s e g n o n e g a t i v o .

U n a p o s s i b i l e s o l u z i o n e : m a n t i s s a r a p p r e s e n t a t a c o n s e g n o e d e s p o n e n t ec o n c o m p l e m e n t o a l l ' i n t e r v a l l o .N ( b i n a r i o ) s i r a p p r e s e n t a : ( S ; m ; e ) , d o v e S è i l s e g n o d e l l a m a n t i s s a :

C o n 4 b i t p e r l a m a n t i s s a e 3 p e r l ' e s p o n e n t e , i l d e c i m a l e - 0 , 0 9 3 7 5 c h e i nb i n a r i o d i v e n t a : - 0 , 0 0 0 1 1 , s a r à r a p p r e s e n t a t o d a l l a t e r n a : ( 1 ; 1 1 0 0 2 ; 1 0 1 2 ) .c h e c o r r i s p o n d e a :

eS mN 2,0)1(

310122 275.0101100,0 2

Page 31: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

31

Lo standard IEEEUna rappresentazione generalmente adottata a livello mondiale è quella proposta da:

"Institute of Electrical and Electronical Engineering" (IEEE).

Prevede quattro diversi formati per calcoli in singola o doppia precisione di tipo semplice ed esteso.

Formati semplici:

Il formato per la singola precisione: utilizza 32 bit in totale, 1 per il segno, 8 per l'esponente e 23 per la mantissa.

Quello per la doppia precisione: utilizza 64 bit di cui 1 per il segno, 11 per l'esponente e 52 per la mantissa.

Page 32: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

32

Rappresentazione in

virgola mobile

secondo lo standard

IEEE: l’intero range

NaN

0 0 0 0 0 0 0 0 0 0 0 0 0 1

1 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 0 0 0 0 0 1

2-126

2-126

2-120

21

2127

0 0 0 0 0 0 0 0 0 0 0 0 0

e=0

e=1

e=254

1-1 0 0 0 0 0 0 0 0 0 0 0 0 0

1+

1 1 1 1 1 1 1 1 1 1 1 1 1 1

2128- 1 1 1 1 1 1 1 1 1 1 1 1 1 1

2-126+

2-126-

2-126-230 0 0 0 0 0 0 0 0 0 0 0 1 1

0 1 1 1 1 1 1 1 1 1 1 1 1 1

e=255

e=255

n = (1/0+ 0.mantissa) 2esp

Diverso da 0

0 0 0 0 0 0 0 0 0 0 0 0 00

……………………………

…………………………… esp=e-127e=126e=127

e=128

25

24

1 0 0 0 0 0 0 0 0 0 0 0 0 0

1 1 1 1 1 1 1 1 1 1 1 1 1 1……………………………

2-126

1 0 0 0 0 0 0 0 0 0 0 0 0 11

1 0 0 0 0 0 0 0 0 0 0 0 0 125

25(1+)= 25+ 2525(2- )=26-25 26

26

=2esp· = 2esp· 2-23

n cifra implicita mantissa

=2-23

24(2- )=25-24 25

26

………....

e=131

e=132

e=133

Page 33: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

33

Rappresentazione in virgola mobilesecondo lo standard IEEE :esempi

Il numero decimale 1021 è rappresentato dalla tripla (S; m; e):

(0; 111 1111 0100 0000 0000 00002; 1000 10002). Il bit segno è 0 perché il numero è positivo. La rappresentazione binaria di 1021 è: 11 1111 11012 che,

normalizzato e scritto con 23 bit, da il secondo numero della terna moltiplicato per 29. Sono 9, infatti, le posizioni di cui è necessario spostare la virgola per la normalizzazione al formato

1,xyz ..... Il numero di bit da usare per l'esponente è 8 e quindi:

P = 2 E-1-1 = 2 7-1 = 127. L'esponente e si ricava invertendo la relazione di definizione della

costante di polarizzazione: e = e' + P = 9 + 127 = 136 che, convertito in binario, da l'esponente della terna.

Page 34: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

34

Operazioni in virgola mobile

La moltiplicazione fra due numeri N1 ed N2 rappresentati in virgola mobile dalle triple (S1; e1; m1) ed (S2; e2; m2) ha per risultato il numero rappresentato dalla tripla: (S; e; m) in cui: S = 0 se S1 = S2 oppure: S = 1 se S1 S2; e = e1 + e2; m = m1 x m2 Dopo l'operazione di solito è necessaria la normalizzazione del risultato La divisione si effettua con regole analoghe. L'addizione e la sottrazione sono più complesse perché prima di effettuarle bisogna rendere uguali gli esponenti. Durante questa operazione se i numeri sono uno molto grande ed uno molto piccolo, per effetto dello scorrimento delle mantisse per pareggiare gli esponenti, si possono perdere cifre significative.

Page 35: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

35

Codifica binaria di caratteri alfanumerici

I calcolatori, nonostante il nome italiano (in francese si chiamano "ordinatori") sono spesso utilizzati per manipolare informazioni non matematiche.

Tutto il mondo della moderna editoria si basa sull'uso di computer e, quindi, non ci può essere dubbio che il problema della codifica binaria dei caratteri alfanumerici sia un problema sentito.

Si parla di caratteri "alfanumerici" per sottolineare che in un testo possono essere presenti, oltre che caratteri alfabetici, anche numeri ed altro, come segni di punteggiatura, simboli particolari (£, &, @, .... ) accenti di vario tipo, ecc..

Lo standard ormai universalmente adottato per applicazioni a basso livello (solo testo "non formattato") è la codifica ASCII (da American Standard Code for Information Interchange).

Il codice utilizza le 128 combinazioni possibili di 7 bit, secondo le assegnazioni contenute nella seguente tabella.

Page 36: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

36

Codice ASCII

Page 37: Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)

Settembre 2002 IFTS2002 Acq. Dati Remoti: INFORMATICA

37

Sequenze di caratteri

Quando un sistema deve trasmettere, ad un altro che riceve, delle informazioni articolate che non corrispondono ad un singolo carattere o dato numerico, sorge il problema di come accompagnare le rappresentazioni di caratteri alfanumerici o dati numerici con le informazioni necessarie per una loro corretta interpretazione.

Se si trasmette una successione di caratteri che costituiscono una parola, l'unità ricevente deve avere anche questo elemento d'informazione.

Si può far precedere la sequenza di caratteri (stringa, dall'inglese "string") dall'informazione del numero di lettere che costituiscono la parola od inviare un carattere di controllo dopo l'ultima lettera. Queste "regole" sulla trasmissione delle informazione costituiscono la base dei cosiddetti "protocolli" di trasmissione. I protocolli più conservativi usano sia un "header" cioè un messaggio che precede il blocco di informazione che un "footer" cioè un messaggio che segue.