rappresentazione delle informazioni nei sistemi...

50
Fondamenti di Informatica Corso di Laurea Prof. L. Mezzalira 2 - Rappresentazione delle informazioni nei sistemi digitali - 1 FONDAMENTI di INFORMATICA Prof. Lorenzo Mezzalira Appunti del corso 2 Rappresentazione delle informazioni nei sistemi digitali Indice 1. Segnali e informazioni 2. Codifica binaria delle informazioni 3. Codifica di informazioni enumerative 4. Codifiche di numeri naturali, interi, razionali

Upload: nguyenhuong

Post on 15-Feb-2019

215 views

Category:

Documents


0 download

TRANSCRIPT

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 1

FONDAMENTI di INFORMATICA Prof. Lorenzo Mezzalira

Appunti del corso

2

Rappresentazione delle informazioni

nei sistemi digitali

Indice

1. Segnali e informazioni

2. Codifica binaria delle informazioni

3. Codifica di informazioni enumerative

4. Codifiche di numeri naturali, interi, razionali

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 2

Segnali e informazioni I segnali sono grandezze fisiche utilizzate per

rappresentare e trasportare informazioni. Le informazioni a loro volta possono essere descrittive di fenomeni fisici (ad esempio una temperatura, la velocità di rotazione di un

motore, ecc.) o essere di tipo astratto (ad es. cifre, caratteri di un testo, simboli, numeri, ecc.).

Ogni singolo segnale è prodotto da uno o più

generatori, in mutua esclusione, mentre può venire

utilizzato da uno o più ricevitori anche contemporaneamente.

E' importante notare che il livello energetico delle grandezze fisiche che costituiscono i segnali è solo connesso alla loro pratica utilizzabilità cioè per il trasporto e la percezione delle informazioni da parte

dei riceventi, con adeguata insensibilità agli agenti perturbanti. Con i dispositivi elettronici i segnali sono generalmente costituiti da grandezze elettriche, ed in

particolare da tensioni o da correnti. Con i dispositivi a funzionalità intrinseca i segnali sono “attivi” e stimolano il meccanismo di percezione dell’informazione, con i dispositivi a funzionalità programmata le informazioni dei segnali sono “lette” quando l’esecuzione del programma incontra le istruzioni di acquisizione (lettura).

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 3

Segnali elettronici I segnali di tipo elettronico sono molto interessanti perchè rendono economicamente possibili varie elaborazioni a bassi livelli energetici e (quindi) ad elevate velocità. Quindi nella maggior parte dei casi i segnali vengono convertiti in questa forma.

Segnali ottici Un crescente interesse presentano anche i segnali luminosi, soprattutto grazie al continuo progresso delle tecnologie di conversione da/verso grandezze elettriche (optoelettronica) e di trasporto (fibre ottiche). Si noti che sono interessanti i segnali più facilmente “convogliabili” verso una specifica destinazione, ad esempio mediante conduttori o fibre ottiche.

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 4

Come si rappresentano le informazioni Per un corretto progetto di generazione e ricezione dei segnali occorre stabilire chiaramente quali informazioni sono associate a quali caratteristiche del segnale.

La rappresentazione di informazioni è basata sulla corrispondenza tra caratteristiche di valore e temporali dei segnali e le informazioni che essi rappresentano.

Il tipo di associazione tra informazioni e caratteristiche

del segnale è convenzionale e a priori arbitrario.

La correlazione più spontanea tra informazione e segnale è quella che associa il valore

dell'informazione all'ampiezza del segnale.

Ma sono utilizzate anche altre correlazioni:

- in banda base valore dell’informazione

associato a una durata (durata = intervallo fra variazioni discordi del segnale)

associato a un periodo (periodo = intervallo fra variazioni concordi del segnale)

- con modulazione, cioè trasposizione sui parametri di un andamento sinusoidale

Segnale S(t) = A sin (Wt + F) valore di informazione associato a ampiezza A

valore di informazione associato a frequenza W

valore di informazione associato a fase F

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 5

La rappresentazione delle informazioni può essere di

tipo analogico l'informazione è associata biunivocamente al valore del segnale

di tipo digitale l'informazione è associata al particolare intervallo finito di valori cui appartiene il valore del segnale

Segnali analogici

I segnali analogici rappresentano valori numerici reali. Sono segnali in cui il valore dell’informazione rappresentata è una funzione continua (spesso lineare) della grandezza assunta come significativa. Generalmente si assume l’ampiezza del segnale, o più raramente altri parametri (ad es. la frequenza).

Con i segnali analogici si rappresentano solo

informazioni con valori numerici.

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 6

Corrispondenza con le informazioni rappresentate

Le corrispondenze tra segnali e valori rappresentati

sono rappresentabili graficamente con segmenti o curve su un piano cartesiano, come negli esempi seguenti.

Da un punto di vista informatico le corrispondenze vengono descritte con coefficienti di funzioni analitiche oppure con tabelle (array di coordinate di punti).

Valore del segnale

Valore rappresentato

Fondo scala

Intervallo di Valori

rappresentati

Inizio scala

Intervallo di valori del segnale

Fig. - Segnale lineare.

Valore del segnale

Valore rappresentato

Fondo scala

F.S.

Inizio scala

I.S.

Fig. - Segnale non lineare

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 7

Pregi dei segnali analogici I segnali analogici presentano vari interessanti aspetti positivi che in molti casi ne garantiscono la sopravvivenza anche in ambienti sempre più invasi dalle tecnologie digitali.

I principali pregi dei segnali analogici sono: - Esistono vari fenomeni che generano spontaneamente segnali analogici. (sensori, trasduttori). Le leggi della fisica classica operano tipicamente nel “continuo”. - Esistono vari dispositivi semplici, a funzionalità intrinseca,

che sono in grado di interpretare e trasformare i segnali analogici (amplificatori, trasduttori, attuatori).

- Eventuali perturbazioni deformano il segnale, ma

generalmente non lo stravolgono completamente, cioè introducono, nel riconoscimento delle informazioni, errori percentualmente limitati e “proporzionali” all’entità del disturbo.

- E' sufficiente un unico conduttore (ed eventuale ritorno) per trasmettere informazioni "ricche" (cioè appartenenti ad

un insieme ad elevata cardinalità), cioè per rappresentare idealmente gli infiniti valori numerici in un certo intervallo.

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 8

Difetti dei segnali analogici - I dispositivi di elaborazione dei segnali analogici

sono relativamente poco precisi, poco stabili nel

tempo e poco immuni alle perturbazioni. Volendo migliorare le loro caratteristiche in tal senso, il loro costo cresce molto rapidamente, ed in ogni caso piccoli errori sono ineliminabili. - Le trasformazioni eseguibili direttamente sui segnali

analogici con i dispositivi sopra citati sono poco

flessibili e si riducono sostanzialmente a operazioni di somma algebrica e operazioni di tipo integro/differenziale.

- E’ molto difficile realizzare buone memorie permanenti di segnali analogici. I circuiti Sample & Hold sono relativamente costosi e “perdono” gradualmente il valore analogico memorizzato. - Ogni elaborazione dei segnali analogici produce un

degrado della precisione, e ciò limita il numero di dispositivi collegabili in cascata e quindi la complessità globale delle elaborazioni effettuabili. - Nelle applicazioni in cui sono previsti strumenti informatici di elaborazione sono necessarie

(relativamente costose) tecniche di "conversione" (A/D analogico/digitale, e D/A digitale/analogico).

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 9

Segnali digitali

Per la rappresentazione di informazioni digitali (cioè dotate di un numero finito di valori) mediante segnali viene creata una corrispondenza convenzionale tra

"fasce" di valori del segnale e le informazioni

rappresentate, che sono costituite da simboli di un alfabeto finito. Queste corrispondenze, descritte in forma grafica, assumono tipicamente una forma a scala, in cui l’estensione orizzontale di ogni scalino rappresenta la fascia di valori del segnale associata all’informazione digitale corrispondente all’ordinata dello scalino.

Valore del segnale

Valore rappresentato Significato (Simbolo)

A

Campo utile dei valori del segnale

B

C

Fig - Corrispondenza tra ampiezza e "significato" di un segnale digitale (caso ternario, con valori dell’informazione contrassegnati in questo esempio dai simboli A, B, C)

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 10

Codifiche Poichè per motivi di semplicità costruttiva e di sfruttamento dei segnali si adotta normalmente un numero estremamente limitato di intervalli, cioè un alfabeto a cardinalità (pari a 2 nel caso binario) troppo bassa per molte applicazioni, si assume in generale la seguente impostazione:

CODIFICA → corrispondenza

significato ↔ configurazione

ogni configurazione è composta da una successione di digit (cifre) ogni digit è rappresentato da un segnale “digitale”

Ciò implica che informazioni caratterizzate da una certa ricchezza di valori richiedono vari (talora anche numerosi) segnali (cioè digit) per la loro rappresentazione, come dalla seguente nota relazione:

N = logbaseD (S)

N = ceiling (log base D (S)) cioè S ≤ DN

dove

N = n. segnali, cioè n. di digit

D = cardinalità dei digit (n. valori assumibili da un digit)

S = cardinalità delle configurazioni (n. informazioni rappresentabili)

Ceiling(x) significa “intero non inferiore al valore(x)”

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 11

Segnali digitali binari Sono caratterizzati da due fasce di valori (alto e basso), spesso chiamati H (High) e L (Low) cui sono convenzionalmente associati i significati:

In logica positiva H = 1 = TRUE = ON L = 0 = FALSE = OFF

In ogica negativa H = 0 = FALSE = OFF L = 1 = TRUE = ON H, L fanno riferimento ai livelli del segnale

0, 1 sono valori numerici, ma per brevità usati anche in senso logico

TRUE, FALSE sono valori di verità logica

ON, OFF sono usati nel gergo dell’automazione per indicare attivazione (ON) o disattivazione (OFF) dei dispositivi

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 12

Segnali digitali binari La fascia di valori contrassegnata con il “?” corrisponde all’intervallo di indeterminazione.

Valore del segnale

Volt

Valore rappresentato

L

Margine di rumore L

H

?

GuH RiH

GuL RiL

Margine di rumore H

Fig. – Segnale binario e margini di rumore per i valori L e H.

GuL = max valore L garantito in uscita VOLmax

RiL = max valore L richiesto in ingresso VILmax

GuH = min valore H garantito in uscita VOHmin

RiH = min valore H richiesto in ingresso VIHmin

Per margine di rumore si intende il massimo

scostamento, rispetto ai valori di segnale garantiti in

uscita dal circuito generatore, che rientra ancora

nella fascia di corretta interpretazione del segnale

in ingresso nel circuito ricevitore.

Il margine di rumore è quindi una proprietà di una

coppia ordinata di circuiti generatore e ricevitore. In genere il margine di rumore viene specificato dal costruttore dei circuiti, rispetto a qualunque coppia di circuiti della stessa famiglia e quindi omogenei tra loro nelle specifiche elettriche rispettivamente sugli ingressi e sulle uscite.

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 13

NOTA Perchè segnali a due valori invece che a tanti valori ? Semplicità circuitale (conduzione/interdizione) anche

con una sola tensione di alimentazione.

Mappaggio immediato dei due valori sulla logica vero/falso.

La base "e" (e = 2.71828) minimizza il prodotto Ncif*Base.

Se assumiamo come "costo" della rappresentazione di un'informazione il prodotto del numero di cifre (digit) necessarie moltiplicato per la cardinalità delle cifre (che è un indice della loro "complessità"), il costo associato alla rappresentazione del valore numerico K mediante cifre in base x è esprimibile da: logx (K) * x dove logx (K) rappresenta il numero di cifre richieste per rappresentare l’informazione. Per trovare la base x che minimizza tale costo passiamo ai logaritmi naturali (base e): logx (K) * x = x * ln(K) / ln(x) la cui derivata è: ln(K) * (1/ln(x) + x * (-1/x) * (1/ln(x) exp 2)

che si annulla per ln(x) = 1 quindi per x = e

Con questa impostazione le basi intere ottimali sono 2 e 3.

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 14

Rappresentazione delle informazioni con

segnali digitali binari

La grandezza fisica che si utilizza (segnale elettrico di

tensione) assume solo valori in due fasce discrete (binaria)

H

L

Segnale (volt)0 5valori accettati

valori emessi

Informazione

Valori binari

L’elemento tecnologico base per la realizzazione di circuiti digitali è il transistore il cui funzionamento può essere modellato (in modo molto semplificato) come il funzionamento di un interruttore (aperto o chiuso), quindi con due stati fisici, cui corrispondono 2 opportune tensioni (in genere 0V e 5V)..

BIT (binary digit) = cifra binaria. (unità di informazione elementare) Un bit può assumere due valori che possono essere associati ai simboli:

L(ow) H(igh) aspetto fisico del segnale

0 1 aspetto aritmetico

false true aspetto logico

Terminologia e “unita’ di misura”

1 cifra = bit 1 Kilo = 210 = 1024 103 8 bit = byte 1 Mega = 220 = 1048576 106 16 bit = word (parola) 1 Giga = 230 109 32 bit = double word 64 bit = quad word

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 15

Pregi dei segnali digitali I numerosi ed interessanti pregi dei segnali digitali (soprattutto binari) sono alla base della ben nota evoluzione (o rivoluzione) elettronica ed informatica. Citiamo brevemente i principali: Possibilità di rappresentare con esattezza e senza

incertezza configurazioni di un alfabeto finito. L’aumento della precisione (cardinalità dell’alfabeto) ha un costo (numero di bit necessari) crescente solo con il logaritmo della cardinalità.

Semplicità e robustezza dei circuiti di generazione e riconoscimento dei segnali.

Elevata immunità ai disturbi (consente la rappresentazione esatta con elevata probabilità).

Semplicità dei circuiti di memoria (bistabili).

Semplicità dei circuiti per semplici elaborazioni.

Realizzabilità di elaborazioni complesse con (elevato) numero di circuiti semplici, senza degrado (v. eccezioni) della precisione dei risultati, grazie

all'effetto di rigenerazione consentito dai margini di rumore dei circuiti digitali.

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 16

Difetti dei segnali digitali I difetti dei segnali digitali sono, come è spontaneo pensare, complementari ai pregi dei segnali analogici. Su questi punti vanno quindi effettuate attente analisi quando si debba decidere per l'una o l'altra forma.

Gli errori possono colpire indifferentemente i bit meno significativi (LSB) o (purtroppo!) i più significativi (MSB)

Gli errori possono quindi "stravolgere" l'informazione (corollario del punto precedente).

L'interpretazione del valore è poco "immediata" (passa attraverso una codifica).

Occorrono vari bit (in parallelo o in sequenza temporale) per rappresentare informazioni "ricche".

Con bit in parallelo si hanno problemi di commutazioni non contemporanee (corse critiche), da cui l’uso di codice Gray.

Si ha la necessità di conversione (A/D = Analogico-Digitale) nei numerosi casi di informazioni che sono intrinsecamente continue, accettando i costi e gli errori di quantizzazione di tale conversione.

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 17

Rappresentazione binaria

Nella rappresentazione binaria l’alfabeto (l’insieme

dei simboli utilizzabili) è costituito dalle cifre 0 e 1. Un’informazione di un certo tipo è rappresentabile da

una sequenza (configurazione) di cifre.

Quanti sono i valori distinti rappresentabili di un certo tipo di informazioni?

se sono disponibili N cifre binarie si possono avere

2N configurazioni diverse e quindi rappresentare al

più 2N valori distinti dell’informazione

se si devono rappresentare M informazioni distinte

sono necessarie N = log2M cifre binarie

Quindi a seconda della cardinalità (M) dell’insieme di valori

dell’informazione da rappresentare con una certa variabile, quest’ultima dovrà essere composta da un opportuno numero di bit maggiore o uguale al numero (N) indicato dalla relazione precedente. L’operatore ceiling(x) = x rappresenta il minimo intero >= X

Pensando ad una variabile come “contenitore” il numero di bit di cui è composta ne costituisce la “capienza”, che ovviamente dovrà essere adeguata alla cardinalità dei valori assegnabili alla variabile stessa.

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 18

Codifica dell’informazione

Una codifica è un insieme di regole per costruire e

interpretare la sequenza di cifre – nel caso in esame cifre binarie – che rappresenta l’informazione di un

dato tipo (caratteri, numeri interi, ecc.)

Codifica di informazioni di un dato tipo definizione

corrispondenza biunivoca tra

rappresentazione (i bit) dell’informazione e

significato (valore) dell’informazione

codifica

RAPPRESENTAZIONE SIGNIFICATO

Corrispondenza: è definita in modo arbitrario (è una convenzione) ma deve essere nota e sempre rispettata da chi genera e da chi utilizza le informazioni. Vengono quindi in

genere definite delle codifiche standard.

Arbitrarietà: è utile sfruttarla per avere delle rappresentazioni

dell’informazione che godono di proprietà particolari.

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 19

Arbitrarietà: della codifica sfruttata per ottenere proprietà particolari

Le proprietà desiderabili possono dipendere dall’uso che verrà fatto delle informazioni.

facilità di operazioni aritmetiche tra numeri (codifica pesata e complemento a 2)

ordinamento alfabetico tra le lettere (codifica ASCII)

ordinamenti naturali delle informazioni (codifiche enumerative)

raggruppamenti naturali delle informazioni (significato dei singoli bit o di gruppi)

facilità di conversione in base 10 (codifica BCD)

proprietà di simboli contigui (codifica Gray)

riconoscimento e correzione di alcuni errori (codifica Hamming)

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 20

Codifica dell’informazione Le informazioni che consideriamo devono essere rappresentate ed elaborate da una macchina (calcolatore elettronico).

Aspetto fondamentale:

il numero di elementi “fisici” (elementi di memoria, collegamenti ....) disponibile per contenere e comunicare la rappresentazione di

ogni tipo di informazione è finito. Poichè ogni singolo elemento fisico “contiene” il valore di una cifra binaria, in ogni componente di un

calcolatore il numero di cifre binarie disponibili per

rappresentare l’informazione è finito. Quindi il numero di valori distinti rappresentabili per ogni informazione è finito.

Nasce quindi il concetto di non rappresentabilità di valori di informazioni che richiedono un numero di cifre maggiore di quelle disponibili.

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 21

Considerazione sulla

codifica dell’informazione Siamo abituati a considerare la disponibilità di un numero “illimitato” (o comunque sufficiente) di elementi per rappresentare le informazioni.

Esempio 1 Numeri decimali e operazioni aritmetiche: siamo abituati ad usare tutte le cifre necessarie senza particolari limiti.

Esempio 2 Informazioni da rappresentare: parole della lingua italiana

alfabeto: 21 lettere

lunghezza delle parole non limitata (si può ipotizzare un limite ragionevole Hp: Lmax=26)

molte sequenze di lettere non hanno significato Vocabolario italiano

numero di parole esistenti è << 2126

(possibili combinazioni)

non sono esaurite tutte le sequenze possibili (configurazioni) di lettere

l’introduzione di nuove parole non richiede di aumentare la lunghezza e/o di aumentare il numero di simboli

In ambito informatico la cardinalità degli insiemi di

valori rappresentabili è finita.

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 22

Tipi di informazioni da rappresentare

1. Informazioni enumerative Caratteristiche:

Numerabili (associabili a un sottoinsieme dei numeri

naturali)

non numeriche

l’ordine di enumerazione è significativo: può denotare delle proprietà tra le informazioni e consentire delle operazioni (ad es. confronto) tra le informazioni

2. Valori numerici Caratteristiche:

devono consentire di rappresentare in modo “adeguato” gli insiemi della matematica (naturali, interi, razionali, reali)

sono dei sottoinsiemi di alcuni degli insiemi della matematica del punto precedente

devono essere possibili tutte le operazioni della matematica (e, almeno quelle fondamentali, devono essere facili da realizzare con dei circuiti)

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 23

Informazioni enumerative

Esempi:

1. Colori dell’arcobaleno: 7 colori 3 bit e quindi 8 possibili configurazioni distinte

scelta della corrispondenza (arbitraria, ma si può preservare la posizione nell’arcobaleno, cioè l’ordine per frequenze della luce crescenti)

la configurazione libera disponibile può venire usata per rappresentare il “non colore” (nero)

significato codifica

nero 000 Questa tabella riporta

rosso 001 una possibile (non standard)

arancio 010 codifica binaria dei 7 colori.

giallo 011

verde 100

azzurro 101

indaco 110

violetto 111

2. Le istruzioni macchina di un calcolatore

3. Giorni della settimana: lu ma me gio ve sa do

4. Mesi dell’anno 5. Note musicali .....

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 24

Informazioni enumerative:

caratteri alfanumerici I caratteri alfanumerici consentono all’uomo di rappresentare tutte le informazioni “scrivibili” (con qualche difficoltà, anche immagini, suoni, sensazioni, ecc.).

Si tratta quindi di una codifica molto importante ed

utilizzata. Si devono rappresentare:

lettere maiuscole/minuscole A a .. Z z

spazio

cifre decimali 0 .... 9

segni di interpunzione , : ; .

simboli di stampa ! “ # % @ ) < =

caratteri di controllo per gestire la visualizzazione, la stampa, la trasmissione dei caratteri (fine riga, salto di

riga, salto pagina, inizio messaggio ....) La rappresentazione dei caratteri alfanumerici fa uso

di una codifica standard universalmente accettata:

codifica ASCII (American Standard Code for Information Interchange)

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 25

Codifica ASCII: caratteristiche

7 bit per rappresentare ogni carattere 128 caratteri alfanumerici distinti: le possibili configurazioni vanno da 0000000 a 1111111

la codifica è stata scelta in modo da rispettare alcune “proprietà” dei caratteri: ordinamento del valore numerico delle cifre

ordinamento alfabetico delle lettere

introduce le seguenti ulteriori proprietà: le lettere maiuscole precedono tutte le lettere

minuscole

la “distanza” (differenza tra i valori interpretati numericamente) tra una lettera maiuscola e la sua corrispondente minuscola è la stessa per tutte le lettere

ASCII esteso (8 bit) 256 configurazioni:

le prime 128 (da 00000000 a 01111111) sono associate ai caratteri dell’ASCII Standard, le rimanenti 128 (da 10000000 a 11111111) sono associate a lettere accentate..., a caratteri semigrafici ...

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 26

Tabella ASCII

bit meno significativi

bit più significativi

000 001 010 011 100 101 110 111

0000 NUL DLE SP32 0 48 @ 64 P 80 ` 96 p 112

0001 SOH DC1 ! 33 1 49 A 65 Q 81 a 97 q 113

0010 STX DC2 “ 34 2 50 B 66 R 82 b 98 r 114

0011 ETX DC3 # 35 3 51 C 67 S 83 c 99 s 115

0100 EOT DC4 $ 36 4 52 D 68 T 84 d 100 t 116

0101 ENQ NAK % 37 5 53 E 69 U 85 e 101 u 117

0110 ACK SYN & 38 6 54 F 70 V 86 f 102 v 118

0111 BEL ETB ’ 39 7 55 G 71 W 87 g 103 w 119

1000 BS CAN ( 40 8 56 H 72 X 88 h 104 x 120

1001 HT EM ) 41 9 57 I 73 Y 89 i 105 y 121

1010 LF SUB * 42 : 58 J 74 Z 90 j 106 z 122

1011 VT ESC + 43 ; 59 K 75 [ 91 k 107 { 123

1100 FF FS , 44 < 60 L 76 \ 92 l 108 | 124

1101 CR GS – 45 = 61 M 77 ] 93 m 109 } 125

1110 SO RS . 46 > 62 N 78 ^ 94 n 110 ~ 126

1111 SI US / 47 ? 63 O 79 – 95 o 111 DEL

N.B. I valori numerici in piccolo sono il valore decimale corrispondente al codice ASCII (interpretato numericamente) La codifica ASCII di un carattere nella tabella è ottenuta prendendo i 3 bit corrispondenti alla colonna, seguiti dai 4 bit corrispondenti alla riga (questi gruppi di bit sono anche facilmente associabili a cifre esadecimali - v.seguito).

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 27

Rappresentazione di valori numerici

Le classi di valori numerici che vengono generalmente rappresentate sono le seguenti:

Numeri naturali

Numeri interi (relativi)

Numeri razionali

Rappresentazione di numeri naturali:

codifica pesata (binario naturale)

La codifica standard si basa sulla notazione posizionale o “pesata” che adottiamo usualmente anche per i numeri

codificati in decimale e che ha la proprietà di facilitare

l’esecuzione delle operazioni aritmetiche. Con generica base B

Terminologia:

Base: B (B=2, B=10, B=3, B=16)

Valori delle cifre: 0 .. B-1

Notazione posizionale: Bk (2

k, 10

k)

Nella notazione posizionale, in qualunque base, il valore

numerico rappresentato da una cifra dipende

dal valore della cifra

dalla posizione della cifra nel numero

Esempio in base 10

P10= 12110 = 1102+210

1+110

0

Data una base B e un numero di cifre disponibili N

i numeri naturali (interi 0) rappresentabili sono

0 P BN-1

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 28

Codifica pesata dei numeri naturali

in base 2

P2= bN-1 2N-1

+ bN-2 2N-2

+......+ b2 22+ b1 2

1+ b0 2

0

bit più significativo: bN-1 bit meno significativo: b0 Ad esempio:

numero di bit disponibili N=3 i valori numerici rappresentabili sono

0 P 23-1 cioè 0 P 7

decimale binario valore

0 000 0 22+0 2

1+0 2

0

1 001 0 22+0 2

1+1 2

0

2 010 0 22+1 2

1+0 2

0

3 011 0 22+1 2

1+1 2

0

4 100 1 22+0 2

1+0 2

0

5 101 1 22+0 2

1+1 2

0

6 110 1 22+1 2

1+0 2

0

7 111 1 22+1 2

1+1 2

0

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 29

Codifica pesata dei numeri naturali in base 2 Esempio: numero di bit disponibili N=5 i valori numerici P rappresentabili

sono 0 P 25-1 cioè 0 P 31

decimale binario valore

0 00000 0 24+0 2

3+0 2

2+0 2

1+0 2

0

1 00001 0 24+0 2

3+0 2

2+0 2

1+1 2

0

2 00010 0 24+0 2

3+0 2

2+1 2

1+0 2

0

..... ......

7 00111 0 24+0 2

3+1 2

2+1 2

1+1 2

0

8 01000 0 24+1 2

3+0 2

2+0 2

1+0 2

0

..... ......

15 01111 0 24+1 2

3+1 2

2+1 2

1+1 2

0

16 10000 1 24+0 2

3+0 2

2+0 2

1+0 2

0

..... ......

30 11110 1 24+1 2

3+1 2

2+1 2

1+0 2

0

31 11111 1 24+1 2

3+1 2

2+1 2

1+1 2

0

gli zeri davanti “non contano” ma ci devono essere. Siamo abituati a non scrivere gli zeri non significativi, lasciandoli impliciti.

Invece i segnali fisici possono solo indicare i valori 0 o 1 per tutti i bit usati per rappresentare un valore numerico, e non possono “sparire”.

Per ogni dato tipo di informazioni si adotta un numero fisso di bit, che deve essere stabilito a priori, e non una quantità che dipende dal valore di volta in volta rappresentato. Potenze di 2 da sapere a memoria o saper ricavare rapidamente:

N=6 0 - 63

N=7 0 - 127

N=8 0 - 255

N=10 0 - 1023 (1 K)

N=16 0 - 26210 = 0 - 65535 0 - 64.000 (64 K)

N=32 0 - 22210 210 210 0 - 4.000.000.000 (4 G)

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 30

Codifica esadecimale (HEX)

E’ la codifica pesata dei numeri naturali in base B=16, sono quindi

previste 16 cifre diverse.

valore cifra hex

binario

0 0 0000

1 1 0001

2 2 0010

3 3 0011

4 4 0100

5 5 0101

6 6 0110

7 7 0111

8 8 1000

9 9 1001

10 A 1010

11 B 1011

12 C 1100

13 D 1101

14 E 1110

15 F 1111

Il valore di un generico numero rappresentato in esadecimale si ottiene dalla relazione (dove N rappresenta il numero di cifre esadecimali):

P16=bN-1 16N-1+bN-2 16N-2+......+b2 162+b1 161+b0 160

Nella documentazione tecnica di calcolatori ed in generale di circuiti logici occorre spesso citare delle configurazioni binarie (codifiche, indirizzi, ecc.). Sequenze di 16 o 32 bit rappresentati con “1” e “0” sono, per l’uomo, scomode da gestire e difficili da ricordare. Si ricorre quindi generalmente alla rappresentazione esadecimale (HEX). In particolare la forma HEX è usata nel linguaggio Assembler.

NOTA – La codifica esadecimale non è, ovviamente, una codifica binaria, e non è utilizzata all’interno dei calcolatori. Come la codifica decimale può essere usata nell’ambito di programmi

La comodità della rappresentazione HEX sta nella facilità di conversione in binario e viceversa:

ogni gruppo di 4 bit corrisponde

direttamente ad una cifra HEX, come nella tabella accanto. ESEMPIO binario 0110 1001 1101 0100 HEX 6 9 D 4 Generalmente si premette uno “0” iniziale e una “h” finale. cioè 069D4h

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 31

Altre codifiche di valori numerici Per la rappresentazione dei numeri naturali esistono altre codifiche che non sfruttano la proprietà della notazione posizionale (utile per l’aritmetica) ma che

privilegiano altri aspetti e proprietà delle sequenze di 0 e 1 che rappresentano il valore numerico.

Codifica Gray (detta anche codifica a distanza di Hamming = 1)

Questa codifica è caratterizzata dalla seguente proprietà:

dato un valore numerico da rappresentare

la sua rappresentazione è diversa per il valore di una sola

cifra (distanza di Hamming = 1) dalla rappresentazione del valore numerico precedente e dalla rappresentazione del valore numerico successivo

Decimale Codifica Gray

0 000

1 001

2 011

3 010 Esempio di codifica Gray

4 110 con 3 bit

5 111

6 101

7 100

Utile per rappresentare senza incertezze, con segnali fisici, dei valori numerici che nel tempo si incrementano e decrementano, evitando di richiedere le commutazioni di più di un bit alla volta, che potrebbero verificarsi non contemporaneamente. Questa codifica è usata in applicazioni di automazione industriale.

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 32

Codifica BCD (Binary Coded Decimal)

Questa codifica rappresenta ciascuna cifra decimale con il valore numerico binario corrispondente.

Poichè le cifre decimali vanno da 0 a 9, il valore numerico massimo da rappresentare in binario è 9: sono quindi

necessari 4 bit ( detto anche nibble) per ogni cifra decimale. Le 6 configurazioni rimanenti dei 4 bit non sono utilizzate.

Cifra decimale Codifica BCD

0 0000

1 0001

2 0010

3 0011

4 0100

5 0101

6 0110

7 0111

8 1000

9 1001

Ad esempio: il valore decimale 1429 è codificato come 0001 0100 0010 1001 1 4 2 9

Questa codifica ha la proprietà di rendere facile la conversione con i numeri rappresentati in base dieci. Richiede circuiti un po’ più complessi per l’esecuzione delle operazioni aritmetiche. Non sfrutta tutte le combinazioni dei bit. Ad es. con 12 bit binario puro 0 – 4095

con 12 bit BCD 0 – 999

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 33

Conversione della rappresentazione pesata Conversione =

passaggio dalla rappresentazione pesata di un

numero naturale da una base b1 ad una base

b2. Le regole di conversione si basano:

sull’uguaglianza dei valori numerici, cioè indipendentemente dalla base di rappresentazione il valore del numero è lo stesso

sul concetto di notazione pesata, cioè peso delle cifre dato da potenze della base

Consideriamo i casi di conversione da binario a decimale e da decimale a binario di numeri naturali

Conversione binario → decimale (numeri naturali): è molto semplice

P2=111102 = 124+123

+122+121

+020

= 16 + 8 + 4 + 2 + 0 = 3010

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 34

Conversione decimale → binario

di numeri naturali Algoritmo, descritto con pseudocodice, di conversione in binario del numero intero decimale VALORE:

Inizio algoritmo

V = VALORE

n = 0

Ripetere finchè V > 0

Bn = resto divisione intera (V/2)

V = risultato divisione intera (V/2)

Incrementa n di 1

Fine ciclo

Fine algoritmo Bn sono i bit della rappresentazione binaria pesata del numero decimale VALORE. Il numero di iterazioni necessarie per arrivare al

termine del procedimento determina il numero

minimo di bit necessari per rappresentare quel particolare numero in binario.

Gli eventuali bit più significativi eccedenti assumono il valore 0.

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 35

Conversione decimale → binario

di numeri naturali

Esempio: convertire in base 2 il numero decimale 37.

V 37 B0 1

V 18 B1 0

V 9 B2 1

V 4 B3 0

V 2 B4 0

V 1 B5 1

V 0

3710 = 1001012

La rappresentazione con 8 bit (un byte) è

3710 = 001001012 Nell’esempio, il numero minimo di bit è 6. B5 rappresenta il bit più significativo. Si noti che continuando il procedimento si otterrebbero (correttamente) degli 0 nelle posizioni più significative.

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 36

Operazioni aritmetiche tra naturali

in notazione posizionale

Le operazioni aritmetiche in base 2 seguono le stesse “regole” di quelle in base 10.

E’ fondamentale ricordarsi del problema della rappresentabilità dell’informazione con un numero di bit predefinito.

Ad esempio, nel caso di addizione di due interi rappresentati su N bit, il risultato della somma può

richiedere N+1 bit (overflow = traboccamento, o

superamento) e quindi non essere rappresentabile con i soli N bit.

I circuiti per eseguire le operazioni aritmetiche in notazione posizionale sono molto semplici.

Notevole vantaggio della codifica posizionale.

Esempio: tabella della somma su un bit.

Come nel decimale esiste il riporto verso la cifra più significativa (indicato tra parentesi).

b a b a+b

+ 0 1 0 0 0

a 0 0 1 = 0 1 1

1 1 0 (1) 1 0 1

1 1 0 (1)

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 37

Operazioni aritmetiche: esempi

Somma: N = 4 bit valori rappresentabili da 0 a 15

111 riporti

7 + 0111 + 3 0011

10 1010

1 110 riporti

7 + 0111 + 10 1010

17 (1)0001 non rappresentabile

Sottrazione: N = 4 bit valori rappresentabili da 0 a 15

110 prestiti

12 - 1100 - 6 0110

6 0110

1 000 prestiti

5 - 0101 - 8 1000

- 3 (1)1101 non rappresentabile come intero naturale su 4 bit

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 38

Rappresentazione di valori numerici

interi relativi In aritmetica decimale, per rappresentare i numeri relativi siamo abituati ad utilizzare la rappresentazione in modulo e segno che però è scomoda per l’esecuzione automatica con circuiti.

Le operazioni aritmetiche (algebriche) di somma e sottrazione, così come siamo abituati ad eseguirle, lavorano in modulo e segno e implicano una serie di operazioni elementari per ottenere il risultato corretto: analisi dei segni degli operandi esempio: 5 + (-7) sottrazione

confronto tra i moduli degli operandi 7 > 5 7 è il minuendo

somma tra moduli (naturali) oppure

sottrazione tra moduli (naturali) 7 - 5 = 2 (modulo del risultato)

determinazione del segno del risultato risultato negativo -2

Rappresentazione dei numeri interi (relativi):

Codifica in complemento a 2

All’interno dei calcolatori per i numeri interi relativi si

utilizza usualmente non una rappresentazione in modulo e segno, ma la rappresentazione detta

in complemento a 2 che consente di trattare somme e sottrazioni algebriche in modo indifferenziato e quindi è realizzabile con circuiti aritmetici più semplici.

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 39

Rappresentazione in complemento a 2

Date N cifre binarie, sono disponibili 2N

configurazioni distinte: di queste

2N-1

vengono utilizzate per rappresentare valori 0 e 2

N-1 vengono utilizzate per rappresentare valori < 0.

Ad esempio, se N = 4 sono disponibili 16 configurazioni distinte, con queste posso rappresentare

valori 0: da 0 a 2N-1

-1 cioè da 0 a 7

valori < 0: da -1 a - 2N-1

cioè da -1 a -8 Esempi di campi di valori rappresentabili N=6 da -32 a +31

N=7 da -64 a +63

N=8 da -128 a +127 N=10 da -512 a + 511

N=16 da -32.768 a +32.767

N=32 da - 2.000.000.000 a + 2.000.000.000

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 40

Rappresentazione in complemento a 2 Esempio di codifica su 4 bit

cpl2 = complemento a 2 = two’s complement

La rappresentazione del valore numerico intero positivo P

in cpl 2 su N bit si ottiene nel modo seguente:

P ( 0) P in cpl2 = P2 su N bit

E il suo opposto

P (<0) P in cpl2 = (2NP)2 su N bit

+7 0111

+6 0110

+5 0101

+4 0100

+3 0011

+2 0010

+1 0001

0 0000

-1 1111

-2 1110

-3 1101

-4 1100

-5 1011

-6 1010

-7 1001

-8 1000

Nota bene: dal valore del bit più significativo

si può dedurre il segno:

0 valore 0

1 valore < 0

ma il primo bit non è il segno:

non basta cambiarlo per

cambiare segno al numero!!!

+1 -1

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 41

Rappresentazione in complemento a 2

Problema: dato un valore numerico intero relativo individuarne la

rappresentazione su N bit in cpl 2

Regola di conversione

Si considera il valore assoluto del numero da rappresentare Lo si converte in notazione binaria posizionale su N cifre (bit)

se il numero da rappresentare è 0, questa è già la rappresentazione in complemento a 2

se il numero da rappresentare è < 0, si deve calcolare l’opposto e per fare ciò si complementano tutti i bit e si somma 1

In alternativa, partendo dal bit meno significativo, si lasciano inalterati i valori dei bit fino al primo 1 incluso e si complementano i rimanenti bit

Esempio su 4 bit.

P = - 6 610 = 01102 complemento i bit 1001 sommo 1 1010

- 610 = 1010cpl2

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 42

Esempi di operazioni aritmetiche

di somma algebrica tra

interi relativi in complemento a 2 011

3 + 0011 + -5 1011

-2 1110 1 111

- 1 + 1111 + 1 0001

0 (1)0000

Qui c’è riporto sul bit più Significativo che va trascurato. Il risultato è corretto.

Nota –

Se i due addendi hanno segno opposto non si avrà mai supero e l’eventuale riporto a monte del bit più significativo va ignorato e il risultato è corretto.

Se i due addendi hanno lo stesso segno, si ha supero se il risultato appare di segno opposto, anche se non si ha riporto a monte del bit più significativo, e il risultato in questo caso ovviamente non è corretto.

110

2 + 0010 + 7 0111

9 1001

1001 e’ negativo! Qui c’è superamento (overflow) anche se non c’è riporto.

Risultato non corretto

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 43

Rappresentazioni con codifiche intere Le codifiche intere considerate finora sono - codifica pesata (binario puro) - codifica in complemento a 2 - codifica Gray - codifica BCD

Queste codifiche hanno in comune la proprietà

di avere una risoluzione costante in valore

assoluto in tutto il campo di valori rappresentati,

e quindi una risoluzione relativa che è percentualmente più elevata per i valori più piccoli. Quando si deve fare attenzione alla risoluzione relativa?

Quando i valori da rappresentare in realtà sarebbero continui, come ad esempio le misure di grandezze fisiche. In questi casi la risoluzione corrisponde agli errori di quantizzazione che si commettono adottando una codifica intera. In molti casi per le misure non è accettabile un errore di quantizzazione relativo elevato per piccoli valori di misura.

Quindi le codifiche intere

sono adatte per conteggi di oggetti

sono adatte per quantità monetarie

sono da usare con cautela per misure di grandezze continue

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 44

Codifica di numeri razionali: Rappresentazione in virgola fissa

(fixed point) Costituisce un’estensione della codifica posizionale pesata che considera anche le cifre dopo la virgola, con pesi dati dalle potenze negative della base 2, analogamente a quanto si fa normalmente in base 10. La virgola (point) non viene rappresentata, ma la sua posizione viene prefissata e rigidamente mantenuta. Es. Virgola fissa di 2 byte, di cui uno dopo la virgola:

0000 0110 1100 0000

^ posizione prefissata della virgola il valore è 2

2 + 2

1 + 2

-1 + 2

-2

4 + 2 + 0,5 + 0,25 = 6,7510 La rappresentazione in virgola fissa ha la proprietà di avere una risoluzione costante in valore assoluto, ma che può essere scelta piccola a piacere dedicando un opportuno numero K di bit alla parte frazionaria

risoluzione = 2-K

Ad es. dedicando 10 bit alla parte dopo la virgola, la risoluzione è 1/1024 cioè circa un millesimo.

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 45

Rappresentazione in virgola fissa (fixed point)

Conversione decimale → binario virgola fissa La conversione tratta separatamente la parte intera e la parte frazionaria.

Parte intera – si procede per divisioni successive, come precedentemente indicato per i numeri naturali.

Parte frazionaria – si procede per moltiplicazioni x2 come nell’esempio seguente. Es. 25,3510 da convertire in due byte

parte intera 25 12 1 12 6 0 6 3 0 3 1 1 1 0 1 00011001

parte frazionaria 0,35 0,70 0,70 1,40 0,40 0,80 0,80 1,60 0,60 1,20 0,20 0,40 0,40 0,80 0,80 1,60 01 0110 01.. (periodico !!!)

25,3510 = 0001 1001 0101 1001 fixed point [byte],[byte]

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 46

Codifica di numeri razionali: Rappresentazione in virgola mobile

(floating point) Il valore di un numero razionale R è esprimibile con la

seguente forma generale per qualunque base b

R = M • b E

(R non periodico)

R - valore razionale positivo o negativo

M - mantissa frazionaria con segno

b - base

E - esponente intero con segno

Quindi, data e sottintesa una base b, un numero rappresentato in virgola mobile può avere la forma

E M

Dove M è la rappresentazione con un certo numero di cifre della mantissa nella base b,

ed E è la rappresentazione con un certo numero di cifre, anche questa nella base b, dell’esponente da dare alla base. Si noti che:

l’estensione del campo di valori rappresentabili

dipende dal numero di cifre adottate per E

la risoluzione (precisione) dipende dal numero

di cifre adottate per M

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 47

Codifica di numeri razionali: rappresentazione in virgola mobile

Standard IEEE 754 floating point su 32 bit

1 bit di segno S della mantissa

8 bit di esponente E Nota – lo standard IEEE754 adotta

per la mantissa la rappresentazione in modulo

(M) e segno (S) per l’esponente la codifica “eccesso 127”,

cioè E = esp +127

quindi NON modulo e segno NE’ complemento a 2.

Campo di valori rappresentabili (nota: 2126

≈1038

) L’esponente di 8 bit consente valori di ±126

~ -10 38

. . ~-10 -38

0 ~10 -38

. . ~10 38

Risoluzione relativa uno su 16 milioni (2-24

) 23 bit di mantissa M più il primo bit sottinteso perchè sempre = 1 per effetto della normalizzazione. La mantissa di 24 bit corrisponde a circa 7 cifre decimali (nota: 2

24 .≈ 0,16*10

7 )

S E M

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 48

Standard IEEE 754 floating point su 32 bit

Tipo float del linguaggio C

La collocazione dei bit nei 4 byte è la seguente: Seeeeeee emmmmmmm mmmmmmmm mmmmmmmm

Il valore numerico rappresentato V vale:

V MS E ( ) ( . )1 2 1127

N.B. – Con questo standard

la normalizzazione prevede una mantissa 1 ≤ mantissa < 2

Convenzioni di codifica di casi particolari

Categoria Esp. Mantissa

Zeri (±0) 0 0

Numeri denormalizzati 0 non zero

Numeri normalizzati 1.. 254 qualunque

Infiniti (±∞) 255 0

NAN (Not A Number) 255 non zero

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 49

Codifica di numeri razionali: rappresentazione in virgola mobile

NB. I circa 4 miliardi di configurazioni dei 32 bit usati consentono di

coprire un campo di valori molto ampio con una risoluzione

relativa costante, grazie alla distribuzione non uniforme dei

valori associati alle configurazioni di bit.

Infatti per numeri molto piccoli i valori sono “fitti”, ma si vanno “diradando” per i numeri via via più grandi.

0- +

Approssimativamente gli intervalli tra valori contigui (risoluzione) sono:

per valori di 10000 l’intervallo è di un millesimo

per valori di 10 milioni l’intervallo è di un’unità

per valori di 10 miliardi l’intervallo è di mille (!!!)

ecc.

Meditare sulle conseguenze! Operando con floating point di 32 bit si ha che:

Un miliardo più dieci risulta un miliardo. Cioè i valori non rappresentabili non sono solo quelli esterni all’intervallo di rappresentabilità, ma anche valori interni. Ci sono anche gli standard IEEE floating point su 64 (tipo double) e su 80

bit che estendono notevolmente il campo di valori rappresentabili e riducono la risoluzione rendendola molto più fine e consentendo quindi precisioni molto maggiori. Importanti per calcolo scientifico.

Fondamenti di Informatica – Corso di Laurea Prof. L. Mezzalira

2 - Rappresentazione delle informazioni nei sistemi digitali - 50

Codifica di numeri razionali: rappresentazione in virgola mobile

Le principali proprietà della codifica floating point sono:

esteso campo di valori rappresentabili

risoluzione (errore di quantizzazione)

percentualmente costante in tutto il campo di valori

Queste proprietà rendono la rappresentazione floating point

adatta a rappresentare misure di grandezze fisiche

non adatta a rappresentare quantità monetarie

non adatta a rappresentare conteggi di oggetti Si noti che le caratteristiche della rappresentazione floating point sono “complementari” a quelle delle rappresentazioni intere (cpl2, Gray, BCD, ecc.)