La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Rappresentazione dell’informazione nel calcolatore. Alessandro Bozzola MATERIALE TRATTO DA:

Presentazioni simili


Presentazione sul tema: "Rappresentazione dell’informazione nel calcolatore. Alessandro Bozzola MATERIALE TRATTO DA:"— Transcript della presentazione:

1 Rappresentazione dell’informazione nel calcolatore. Alessandro Bozzola MATERIALE TRATTO DA:

2 Introduzione A livello di circuiti logici i calcolatori memorizzano (e rappresentano) valori basati su bit, gestiscono quindi zeri( V low )e uni( V high ). Poiché a noi interessa memorizzare ed elaborare numeri, parole, immagini, suoni, ecc. Occorre progettare un sistema che consenta di rappresentare le informazioni interessanti in termini di bit (forma binaria).

3 Introduzione (cont…) Vedremo quindi come si rappresentano le informazioni fondamentali: numeri e caratteri. Daremo dei cenni sulla rappresentazione di informazioni più sofisticate e complesse.

4 La rappresentazione dei numeri Cominciamo con i numeri interi non negativi (numeri naturali + lo zero) Gli interi non negativi sono rappresentabili con diverse notazioni:  additiva romana: I, II, III, IV, V,.... IX, X, XI...  posizionale indo-araba: 1, 2,.. 10, 11, , Il valore dei numeri dipende da regole specifiche della rappresentazione.

5 Notazioni posizionali Ogni simbolo contribuisce con un valore che dipende dalla sua posizione e dalla base di rappresentazione B. Ad esempio, dato il numero (d k d k-1... d 1 d 0 ) in una base qualsiasi B, troviamo il valore espresso in base 10 dalla formula:

6 Notazione posizionale decimale Per noi è consuetudine rappresentare i numeri con la notazione posizionale decimale, che utilizza le 10 cifre 0,1,..9 (numeri arabici). Un numero è rappresentato da una sequenza di cifre, posizionale significa che il valore di ogni cifra dipende dalla sua posizione all'interno della sequenza, ad esempio:

7 E' possibile scegliere il numero di cifre differenti che si usano in una notazione posizionale, e tale numero prende il nome di base; in ogni numero decimale (in base dieci) la cifra all'estrema destra ha il valore minore (cifra meno significativa), quella all'estrema sinistra il valore maggiore (cifra più significativa). In genere si usano anche numerazione binaria in base 2, ottale in base 8, esadecimale in base 16.

8 Altre basi Ogni numero è esprimibile in modo univoco in una qualunque base: Stringa Base Calcolo del valore Valore in base * * * * – Basi di particolare interesse:  base B=2  due sole cifre: 0 e 1  base B=8  otto cifre: 0, 1, 2, 3, 4, 5, 6, 7  base B=10  dieci cifre: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9  base B=16  sedici cifre: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

9 Conversioni tra basi differenti: Algoritmo delle divisioni successive Dato un numero N in base dieci, per convertirlo in una stringa di caratteri che ne rappresenti la codifica in base B si opera per divisioni successive, calcolando i caratteri della stringa dal meno significativo al più significativo.

10 Esempi, da base 10 a base 2: Convertiamo (11) 10 in base 2. N resti = 1*2^3+0*2^2+1*2^1+1*2^0 = = = 11

11 Esempio da base 10 a 16 e viceversa: Conversione del numero 44 in base 16 44:16 = 2 2:16 = 0 Quindi corrisponde a 2C 16. con resto 12 dove corrisponde a C 16 con resto 2 Verifica : 2 * 16^1 + C * 16^0 = = (44) 10

12 Un altro esempio: Convertiamo (49) 10 in base 2.. N resti = = 49

13 Vediamone un altro: Convertiamo (57) 10 in base 4. N resti = 3*4^2+2*4^1+1*4^0 = = 3*16+2*4+1 = = = 57

14 Conversione tra ottale, esadecimale e binario I sistemi di numerazione ottale ed esadecimale hanno la proprietà di convertirsi in modo facile in binario e viceversa. Infatti, una cifra ottale richiede esattamente tre cifre binarie per la sua rappresentazione, mentre una cifra esadecimale richiede quattro cifre binarie per la sua rappresentazione.

15 Per esempio, il numero ottale si converte facilmente in : il numero esadecimale 3C 16 si converte facilmente in

16 Tabella riassuntiva: conversione rapida binario-ottale, binario-esadecimale:

17 Conversioni per numeri frazionari : E' importante far notare che per i numeri interi si usa il metodo appena descritto delle divisioni successive; per i numeri frazionari si usa per la parte a sinistra della virgola (parte intera) il metodo dellle divisioni successive e per la parte a destra dellla virgola (parte frazionaria) il metodo delle moltiplicazioni successive. Con tale metodo si prende come cifra binaria la parte intera e si moltiplica per 2 la parte decimale fino a quando la parte frazionaria è diventata nulla o quando si sia trovato un numero sufficiente di cifre binarie.

18 Metodo delle moltiplicazioni successive: Conversione del numero in base *2 = con resto *2 = con resto *2 = con resto *2 = con resto 0 0.5*2 = 1.00 con resto 1 Il risultato è: =

19 Operazioni nel sistema di numerazione binario:  Somma: 0+0 = = = = 0 con riporto 1 Per la somma di due numeri positivi di lunghezza K possono essere necessari K+1 bit. Se sono disponibili solo K cifre si genera un errore di overflow (o trabocco).overflow

20 Esempio di somma binaria: A = =27 10 B = = = Verifica : = = 1*2^5 + 1* 2^0 = 1* * 1 = overflow

21  Prodotto : 0*0 = 0 0*1 = 0 1*0 = 0 1*1 = 1 Esempio: A = =11 10 B = = * 1101=

22  Sottrazione : = = = = 0 con prestito di uno. Esempio: A = = B = = – =

23  Divisione : La classica domanda "quante volte il dividendo sta in una certa parte del divisore", può solo avere due risposte: 0, cioè non ci sta, oppure 1, cioè ci sta, perché è più piccolo. Esempio: A = = B = = : = ?

24  Procedimento della divisione : - Si cerca la prima parte del dividendo che sia maggiore del divisore. Tale prima parte è nel nostro caso 10010, e dobbiamo scrivere 1 al quoziente, calcolando il resto come differenza Si ottiene 110… :

25  Procedimento della divisione, cont: …a questo punto "si abbassa" la cifra successiva del dividendo, cioè 1, ottenendo Il divisore 1100 "sta" nel 1101, ovviamente una volta e con resto 1… :

26  Procedimento della divisione, cont: …il quoziente diviene 11 e abbassando la cifra successiva 1 si ha 11. Questa volta il divisore "non sta" in questa parte del dividendo e quindi si aggiunge uno 0 al quoziente… :

27  Procedimento della divisione, cont: …si prosegue abbassando la cifra successiva. Questo è l'ultimo 0, che dà 110 nel dividendo. Di nuovo il 1100 non sta nel 110 e perciò si aggiunge un altro 0 al quoziente : Non essendoci più cifre da calare ciò significa che l'operazione è finita: quindi il quoziente è =12 10, il resto è =6 10.

28 Rappresentazione dei numeri nel calcolatore: Nella rappresentazione dei numeri attraverso il sistema binario sorgono due problemi: rappresentazione dei numeri troppo grandi o troppo piccoli. E' possibile rappresentare solo i numeri compresi in un intervallo finito, compreso tra la soglia minima di underflow e la soglia massima di overflowunderflowoverflow

29 Rappresentazione dei numeri periodici e dei numeri razionali. E' possibile rappresentare solo una parte, ovviamente la più significativa incorrendo in un errore di troncamento

30 Rappresentazione dei numeri con segno. Se utilizziamo 16 bit per codificare un numero avremo a disposizione combinazioni. Possiamo: –rappresentare i numeri naturali da 0 a 65535, –rappresentare i numeri relativi (con segno) da a Come facciamo?

31 Considerando 16 bit, il primo bit di questi, detto bit più significativo (MSB Most Significant Bit) a disposizione viene utilizzato per il segno: 1 -> numero negativo; 0 -> numero positivo Allora se il primo bit é 0, i rimanenti 15 bit rappresentano un numero positivo da 0 a Se il primo bit é 1 i rimanenti 15 bit li possiamo usare per rappresentare numeri negativi


Scaricare ppt "Rappresentazione dell’informazione nel calcolatore. Alessandro Bozzola MATERIALE TRATTO DA:"

Presentazioni simili


Annunci Google