230 likes | 395 Views
Rappresentazione delle informazioni. Occorre un codice Legato alla tecnologia usata Robustezza Semplicita’ Economicita’. Rappresentazione delle informazioni, cont. Numeri Rappresentazione decimale codificata Rappresentazione posizionale Intera positiva e negativa
E N D
Rappresentazione delle informazioni • Occorre un codice • Legato alla tecnologia usata • Robustezza • Semplicita’ • Economicita’
Rappresentazione delle informazioni, cont. • Numeri • Rappresentazione decimale codificata • Rappresentazione posizionale • Intera positiva e negativa • Floating point (virgola mobile) • Informazione alfanumerica • Codice ASCII (8 bit) • Unicode (16 bit) • Indirizzi • Rappresentazione posizionale • Intera positiva
Memoria Numero di parole (milioni di byte) Word, byte, … Dimensioni di parola (8, 16, 32, 64 bit)
Indirizzi • Necessari per memorizzare informazioni complesse • Indicano (puntano a) una locazione di memoria • Numeri positivi interi • Legame indirizzo massimo –dimensioni di parola di memoria • In un’architettura vengono usate diverse dimensioni di parola: • Di memoria • Logico • Fisico • Del data-path • Dei bus di interconnessione
Numeri interi positivi • Quindi • Dati • Indirizzi • Rappresentazione posizionale in base 10: • Simboli uguali assumono valori diversi a seconda della loro posizione nel numero • Somma delle potenze del 10 pesate per il valore del simbolo corrispondente • In un calcolatore viene solitamente usata la base 2. • Vantaggi: • Semplice da leggere • Aritmetica semplice (provare con i numeri “romani”)
Altre basi Per convenienza si usano a volte altre base per manipolare esternamente le informazioni all’interno di un calcolatore. Ottale (base 8) Esadecimale (base 16) MA LA RAPPRESENTAZIONE INTERNA NON CAMBIA!!!!
Altre basi • Non a caso sono basi “potenza di 2” • La conversione da e a binario e’ molto facile • Il loro uso e’ superato grazie alla potenza delle interfacce utente.
Conversioni Base B decimale Basta rappresentare usando una rappresentazione decimale come potenze di B e poi fare i conti. Es. 01001 0 * 24 + 1 * 23 + 0 * 22 + 0 * 21 + 1 * 20 = 8 + 1 = 9
Conversioni, cont. • Non sempre si puo’ rappresentare un numero finitamente in due basi diverse. Esempio: il numero 0,357 base 10 non si puo` rappresentare finitamente in base 2: 0,357 * 2 = 0,714 e segno quindi 0 0,714 * 2 = 1,428 e segno quindi 1 0,428 * 2 = 0,856 e segno quindi 0 0,856 * 2 = 1,712 e segno quindi 1 0,712 * 2 = 1,424 e segno quindi 1 . . . . . . . . .
Numeri negativi • Segno e grandezza • Non efficente nell’implementare le operazioni aritmentiche
Numeri negativi, cont. • Complemento a uno
Numeri negativi, cont. • Complemento a uno: due zeri, negazione facendo il complemento bit a bit
Numeri negativi, cont • Complemento a due: uno zero, negazione facendo complemento a 1 e somma di 1.
Operazioni aritmetiche • Numeri positivi: bit a bit dato che si tratta di una rappresentazione posizionale • Numeri negativi: le rappresentazioni in complemento permettono di utilizzare sempre la somma anche per sottrarre
Overflow • Overflow traboccamento • Si verifica se il risultato di un’operazione non puo’ essere rappresentato con il numero di bit a disposizione • Nel caso di complemento a due (la norma): • Si verifica solo se i segni sono uguali -124+ 10000100 67= 01000011 Segni discordi. _____ ________ Risultato corretto. -57 11000111 70+ 01000110 Segni concordi. 70= 01000110 Risultato scorretto (140 è fuori dal ____ ________ range):OVERFLOW. 140 10001100
Numeri frazionari • Fixed point
Numeri frazionari • Floating point come la notazione scientifica esponenziale • Aumenta la gamma di valori rappresentabili • Diminuisce e dimenta variabile la precisione: • NON TUTTI I VALORI SONO RAPPRESENTABILI!!!!!!! • Esempio: 1753.427 si puo’ rappresentare come: 0.1753427*10^4=1.753427*10^3=...=1753427*10^-3
Gamma di rappresentazione Le possibilita’ di rappresentare un certo valore non sono uniformi in tutta la gamma di valori rappresentabili. Vedere figura B-1 (Numeri floating point )
Una possibile rappresentazione floating point • Standard IEEE 754 • Singola precisione, 32 bit • Doppia precisione, 64
Standard floating point • I numeri sono sempre normalizzati, cioe’ la parte frazionaria e’ del tipo 1.xxxxxxxxx…. • Il primo 1 non viene rappresentato perche’ implicito • Lo zero si rappresenta con un esponente e frazione a zero
Rappresentazione dell’esponente • Biased, cioe’ “spostata” di meta’ della precisione possibile • Esempio: se l’esponente e’ di 8 bit invece di rappresentare l’esponente in complemento (da –128 a +127) lo si rappresenta come: • Esponente reale + 128 • Quindi l’esponente reale –128 viene rappresentato come 0, l’esponente reale 0 come 128 • Perche’? Per far si’ che due numeri floating point siano confrontabili in grandezza dagli stessi circuiti che confrontano i numeri interi.
Esempio • A cosa corrisponde questo numero? • Il bit di segno è 1, mentre il campo esponente contiene 129 e il campo significant contiene 1x2^-2: il numero corrispondente alla notazione è quindi -1.01 x 2^2, che corrisponde al numero decimale -1.25 x 4=-5.0