Unità Didattica Rappresentazione dei Dati
Codiica dell Inormazione Ad un calcolatore le inormazioni sono ornite come sequenze di caratteri alanumerici (alabeto esterno [6 lettere maiuscole e minuscole, cire decimali, segni di interpunzione, matematici e di controllo]); Tali caratteri sono rappresentati in memoria come sequenze di un alabeto interno, secondo una codiica che associa ad ogni carattere dell alabeto esterno, una e una sola sequenza di caratteri dell alabeto interno: Alabeto esterno Codiica Decodiica Alabeto interno
Alabeto Interno Binario Per rappresentare l inormazione all interno di un calcolatore (alabeto interno) si usa l alabeto binario poiché le sue componenti possono trovarsi in due soli stati (/); I motivi per i quali i calcolatori sono stati costruiti con tali componenti sono i seguenti:. Alta tolleranza dei circuiti al rumore: garanzia di un alto grado di tolleranza agli errori;. Circuiti più semplici, tali da poter essere costruiti a basso costo. 3
Bit, Byte, Word Bit Binary digit (cira binaria (/)) Byte 8 bit (raggruppamento più comune nelle memorie e nei dispositivi I/O) Parola (Word) raggruppamento più grande del byte si misura in n di byte 4
Codiica Dati Alanumerici I codici usati per i dati alanumerici sono:. EBCDIC (Extended Binary Code Decimal Interchenge Code);. ASCII (American Standard Code or Inormation Interchange). In tali codiiche le sequenze numeriche sono interpretate come stringhe (sequenze di caratteri) (es: 34 non è un numero intero ma, per esempio, un numero di teleono). 5
Codiica EBCDIC Ogni carattere è codiicato in un byte: 3 4 5 6 7 ZONE DIGIT Si possono rappresentare 8 56 caratteri > n caratteri da rappresentare; Alcune codiiche non sono utilizzate. 6
Codiica ASCII Ogni carattere è rappresentato su 8 bit; L ASCII originario era di 7 bit, orzato a 8 bit con il bit più signiicativo ; Quindi si utilizzano solo metà delle 56 codiiche, ovvero si rappresentano: 7 8 caratteri: 3 4 5 6 7 7
Codiica Dati Numerici Dati numerici in aritmetica decimale: BCD (Binary Coded Decimal); Codiica numeri interi (Z): Modulo e segno; Complemento a ; Codiica numeri reali (R): Codiica in virgola mobile (loating point). 8
Codiica BCD Codiica per la rappresentazione di quantità numeriche in rappresentazione decimale; Ogni cira decimale ( 9) viene rappresentata mediante la corrispondente codiica binaria; Per rappresentare una cira decimale occorrono 4 bit inatti: 3 4 8 cire < cire < 6 cire Codiica BDC Codiica Binaria 64748 64748 Es: ( 8) {{ ( ) 8 Le codiiche binaria e BCD sono diverse; Es: Codiica BCD Packed (4 bit per ogni cira + byte di segno): - il coprocessore 8387 può rappresentare gli interi con un aritmetica decimale packed ( byte 8 cire (9 byte) + byte per il segno). 9
Codiica Interi: Codiica Modulo e Segno Si rappresenta un intero mediante la rappresentazione separata del modulo e del segno; Qualunque sia il numero dei bit usati, quello più a sinistra rappresenta il segno ( +; -) (tale bit è simbolico, non ha peso); I restanti (n-) bit (che hanno un peso unzione della posizione) rappresentano la codiica binaria del modulo; Rango di rappresentabilità della codiica modulo e segno: n n [ ( ), + ( )]
Somma e Sottrazione in codiica Modulo e Segno Se la somma di due interi dà un risultato minore/maggiore del rango permesso dai bit di rappresentazione si dice che si è veriicato un underlow / overlow e il risultato non è corretto; Esempi di operazioni in codiica modulo e segno: +
Codiica Interi: Codiica in Complemento a È la codiica più usata per rappresentare gli interi. Si basa sul teorema del complemento: X Y X + C b (Y ) su k cire. Si distingue il caso di X e X < : Rappresentazione in complemento a X X < C ( X ) ( X ) Esempi di rappresentazione in complemento a su 5 bit: X ) ( ) ( c X ( 9) ( ) C( X ) C( ) c
3 Proprietà della Codiica in Complemento a Forma polinomia della codiica in complemento a su n bit: Il bit più signiicativo c n- ha peso (- n- ) (c n- non è un bit simbolico); Dalla orma polinomia in complemento a segue che anche per questa codiica i numeri negativi hanno il bit più signiicativo c n- ; Rango di rappresentabilità della codiica in complemento a su n bit: c c c n n n n + +... ], [,...,,,...,, 3 3 c c c n c c c n n n n n
Somma e Sottrazione in codiica Complemento a Il bit più signiicativo (che caratterizza il segno) è trattato allo stesso modo degli altri bit; Il risultato è espresso nella orma complemento a ; Se la somma di due interi dà un risultato minore/maggiore del rango permesso dai bit di rappresentazione, si dice che si è veriicato un underlow / overlow e il risultato non è corretto; Regole operative per riconoscere un risultato di underlow/overlow: i) riporto al di uori del bit di segno e nessun riporto sul bit di segno; ii) nessun riporto al di uori del bit segno e riporto sul bit di segno. 4
Esempi di Operazioni in codiica Complemento a Esempi di somma e sottrazione in complemento a : { 3 risultato (si carry ignora) + del Complemento Teorema { 3 (si carry ignora) risultato + overlow Il prodotto e la divisione vengono calcolati mediante iterazioni di somme e sottrazioni. 5
Codiica Floating Point Codiica per la rappresentazione dei reali R; La rappresentazione con posizione issa della virgola determina un intervallo (rango) di rappresentabilità troppo limitato; Per estendere l intervallo dei valori rappresentabili con uno stesso numero di bit si usa una rappresentazione in virgola mobile (loating point). 6
7 Codiica Floating Point Corrisponde alla rappresentazione scientiica e s ± ± parte signiicativa s attore di scala e esponente { } ± ± 9 i e p x x x,...,,.... Rappresentazione scientiica normalizzata in base : Rappresentazione scientiica normalizzata in base : ± ± i e p x x x ) (....
Codiica Floating Point x La rappresentazione di macchina dei reali utilizza la codiica loating point normalizzata in base ; I bit di rappresentazione sono suddivisi in tre parti: bit di segno (bit simbolico); m bit per la parte razionaria della parte signiicativa (mantissa); n bit per l esponente (si rappresenta la caratteristica). ± { segno.... p () 443 4 mantissa ± e bit segno esponente (si rappr.la m bit mantissa " caratteristica" ) n bit caratteristica Il bit (sempre ) e il attore di scala (sempre () ) non si rappresentano. 8
Modi di Rappresentazione Floating Point (IEEE). Short Real: 4 byte 3 bit 3 segno 3 3 caratteristica mantissa. Long Real: 8 byte 64 bit 63 segno 6 5 caratteristica 5 mantissa 3. Temporary Real: byte 8 bit 79 78 64 63 segno caratteristica mantissa 9
Codiiche di Mantissa e Caratteristica Mantissa È codiicata nella orma modulo e segno; Negli short e long real il bit più signiicativo della mantissa non è rappresentato essendo sempre ; Non accade nei temporary real perché con essi possono essere rappresentati anche valori non normalizzati; Caratteristica c È codiicata nella orma eccesso a t; Ovvero su k bit la caratteristica è data dal valore c: e + t essendo t k caratteristica 6 7 8 55 esponente * -6 - + +8 * Valore riservato per la rappresentazione dello k8 bit; t 7-7
Rappresentazione Floating Point del valore Consideriamo il valore corrispondente alla conigurazione: s Mantissa (8 bit) Caratteristica (8 bit) Tale valore corrisponde al numero: 7 +. ( ) 44444 44444 3 4 44 5. 48744 3 binario e c t 39 decimale Il valore rappresentato è molto piccolo ma non è zero; Per convenzione si assume che la conigurazione precedente rappresenti lo zero.
Esempi di rappresentazioni Floating Point + (. ) (. ) ( m ( ) c e + t + ( ) + ( ) ( ) ) Spostamento a sinistra esp > segno mantissa (8 bit) caratteristica (8 bit) ( ) + (. ) ( + ). Spostamento a destra esp < m c e ( ) + t ( ) + ( ) ( ) segno mantissa (8 bit) caratteristica (8 bit)
Proprietà della codiica Floating Point La rappresentazione della caratteristica in eccesso a t evita l uso del bit di segno per l esponente; Precisione numero di cire decimali della parte razionaria (corrisponde al minor modulo rappresentabile); Rango intervallo di rappresentabilità; Tipo di rappr. Floating point Short Long Temporary Rango ± 3. 39 ±. 8 ±. 9 38 38 493 Precisione ±. 8 ±. 3 ± 3. 36 38 38 493 3
Addizione di numeri loating point. Caratteristiche non uguali per il numero a caratteristica più piccola: a) Spostamento di un posto verso destra della mantissa (equivale a spostare il punto a sinistra e aumentare la caratteristica); b) Incremento della caratteristica di inché le caratteristiche sono uguali;. Il risultato ha per mantissa la somma delle mantisse e per caratteristica la caratteristica degli operandi; 3. Se il risultato ha un riporto oltre la cira più signiicativa a) Traslazione di un posto a destra della mantissa; b) Traslazione del riporto nel bit più signiicativo della mantissa; c) Incremento della caratteristica di. 4
Esempi di addizioni Floating Point X + Y. +.. +. (.. )... X +Y. Il risultato è in orma normalizzata (se non lo osse si normalizzerebbe mediante lo shit della mantissa e la corrispondente modiica della caratteristica). 5
Moltiplicazione di numeri Floating Point. Moltiplicazione delle due mantisse;. Addizione delle due caratteristiche; 3. Traslazione a sinistra dei bit del prodotto delle due mantisse; 4. Troncamento del prodotto delle mantisse al numero di bit usati; 5. Sottrazione dell eccesso alla somma delle caratteristiche ottenendo la caratteristica del prodotto; Inatti: c e + t c c e + c + t e + e + t Quindi per ottenere l eccesso a t occorre sottrarre t dalla somma delle caratteristiche. 6
Esempi di Moltiplicazione Floating Point X Y... Normalizzando si ha: X Y.. 7
Aritmetica degli Elaboratori Proprietà:. Rappresentazione binaria dei numeri;. Rango inito; 3. Alcune operazioni sono espresse in unzione di altre più semplici; 4. Precisione inita (precisione di macchina): la rappresentazione in precisione inita determina un errore di troncamento; 5. Operazioni per mezzo di altre: Sottrazione per mezzo di una complementazione e una addizione Moltiplicazione con successione di somme e shit. 8
Errore di Troncamento Errore assoluto Errore relativo Teorema valore vero - valore rappresentato; valore vero - valore rappresentato valore vero Hp) Rappresentazione binaria di un numero razionario X alla p-esima cira dopo il punto; Ts) Errore assoluto di troncamento -p Dim: m + + m + + p i i i i Err. assoluto ci c i ( ci c i ) i i i i 444 4443 444 4443 valore vero valore rappresentato + + + + p ( p+ ) i i i i c i se c i i p+ i p+ i i p 9