La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Informatica Lezione 3 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico: 2007-2008.

Presentazioni simili


Presentazione sul tema: "Informatica Lezione 3 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico: 2007-2008."— Transcript della presentazione:

1 Informatica Lezione 3 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico: 2007-2008

2 Codifica dei numeri Il codice ASCII consente di codificare le cifre decimali da “0” a “9” fornendo in questo modo una rappresentazione dei numeri Per esempio: il numero 324 potrebbe essere rappresentato dalla sequenza di byte: 00110011 00110010 00110100 3 2 4 Ma questa rappresentazione non è efficiente e soprattutto non è adatta per eseguire le operazioni aritmetiche sui numeri Sono stati pertanto studiati codici alternativi per rappresentare i numeri in modo efficiente ed eseguire le usuali operazioni aritmetiche

3 Codifica dei numeri (il sistema decimale) La rappresentazione dei numeri con il sistema decimale può essere utilizzata come spunto per definire un metodo di codifica dei numeri all’interno degli elaboratori –Esempio: la sequenza di cifre 324 viene interpretato come: 3 centinaia + 2 decine + 4 unità 324 = 3 x 100 + 2 x 10 + 4 x 1 324 = 3 x 10 2 + 2 x 10 1 + 4 x 10 0 –3 è la cifra più significativa –4 è la cifra meno significativa

4 Codifica dei numeri (il sistema decimale) In generale la sequenza c n c n-1 c n-2 … c 1 c 0 (ogni “c i ” è una cifra compresa tra “0” e “9”) viene interpretata come: c 0 x 10 0 + (c 0 unità) c 1 x 10 1 + (c 1 decine) c 2 x 10 2 + (c 2 centinaia) … c n-1 x 10 n-1 + c n x 10 n La cifra meno significativa La cifra più significativa

5 Codifica dei numeri (il sistema decimale) La numerazione decimale quindi utilizza una notazione posizionale basata sul numero 10 La notazione posizionale può essere utilizzata in qualunque altro sistema di numerazione con base diversa di 10 –Base: il numero di cifre disponibile nel sistema –In base 10, usiamo le dieci cifre 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

6 Codifica dei numeri Nel sistema di numerazione binario (base 2) i numeri vengono codificati utilizzando le due cifre 0 e 1 Nel sistema di numerazione ottale (base 8) i numeri vengono codificati utilizzando le otto cifre 0, 1, 2, 3, 4, 5, 6, 7 Nel sistema di numerazione esadecimale (base 16) i numeri vengono codificati utilizzando le sedici cifre 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

7 Codifica dei numeri (il sistema binario) In analogia con il caso decimale la sequenza c n c n-1 c n-2 … c 1 c 0 (ogni “c i ” è la cifra “0” o la cifra “1”) rappresenterà il numero La cifra meno significativa La cifra più significativa c 0 x 2 0 + c 1 x 2 1 + c 2 x 2 2 + … + c n-1 x 2 n-1 + c n x 2 n

8 Codifica dei numeri Caso generale: considerare un sistema con base b La sequenza c n c n-1 c n-2 … c 1 c 0 (ogni “c i ” è una cifra del sistema) rappresenterà il numero La cifra meno significativa La cifra più significativa c 0 x b 0 + c 1 x b 1 + c 2 x b 2 + … + c n-1 x b n-1 + c n x b n

9 Codifica dei numeri Caso generale: considerare un sistema con base b La sequenza c n c n-1 c n-2 … c 1 c 0 (ogni “c i ” è una cifra del sistema) rappresenterà il numero La cifra meno significativa La cifra più significativa c 0 x b 0 + c 1 x b 1 + c 2 x b 2 + … + c n-1 x b n-1 + c n x b n Se necessario, convertiamo una cifra c i in un numero (per esempio, nel sistema esadecimale, “A” significa “10”, “B” significa “11”, e così via)

10 Codifica dei numeri (il sistema binario) Esempio: la sequenza “1011” in base 2 denota il numero 1 x 2 3 + 0 x 2 2 + 1 x 2 1 + 1 x 2 0 = 11 (in base 10) Esempio: la sequenza “10011” in base 2 denota il numero 1 x 2 4 + 0 x 2 3 + 0 x 2 2 + 1 x 2 1 + 1 x 2 0 = 19 (in base 10) Per evitare ambiguità si usa la notazione 1011 2 = 11 10, 10011 2 = 19 10

11 Altri basi: ottale, esadecimale Sistema ottale –Utilizza una notazione posizionale basata su otto cifre (0,1,…,7) e sulle potenze di 8 –Esempio: 103 8 = 1 x 8 2 + 0 x 8 1 + 3 x 8 0 = 67 10 Sistema esadecimale –Utilizza una notazione posizionale basata su sedici cifre (0,1,…,9,A,B,C,D,E,F) e sulle potenze di 16 –Esempio: 103 16 = 1 x 16 2 + 0 x 16 1 + 3 x 16 0 = 259 10 –Esempio: AC4 16 = 10 x 16 2 + 12 x 16 1 + 4 x 16 0 = 2756 10

12 Esadecimale: esempio HTML: il linguaggio principale usato per definire l’aspetto di una pagina web (il colore dello sfondo, il layout, le tabelle ecc.) In HTML, rappresentiamo i codici per i colori rosso, verde e blu usando le cifre esadecimali tra 00 e FF (00 16 = 0 10 e FF 16 = 256 10 ) I colori predefiniti di HTML (da http://en.wikipedia.org/wiki/Web_colors):

13 Esadecimale: esempio Per esempio: –Blu: 0000FF 16 = 000000000000000011111111 2 Si può anche definire altri colori –Esempio dell’uso: Ciao

14 Conversione dalla base 10 alla base 2 Dato un numero N rappresentato in base dieci, la sua rappresentazione in base due sarà del tipo c m c m-1 c m-2 … c 1 c 0 (le “c i ” sono cifre binarie) Per convertire un numero in base dieci nel corrispondente in base due si devono: –Trovare i resti delle divisioni successive del numero N per due –Leggere i resti in ordine inverso per ottenere la rappresentazione binaria di N (dalla cifra più significativa alla cifra meno significativa)

15 Conversione dalla base 10 alla base 2 Intuitivamente: ottenere la rappresentazione binaria dalla cifra meno significativa alla cifra più significativa c m c m-1 c m-2 … c 1 c 0 Resto di N/2

16 Conversione dalla base 10 alla base 2 Intuitivamente: ottenere la rappresentazione binaria dalla cifra meno significativa alla cifra più significativa c m c m-1 c m-2 … c 1 c 0 Resto di (N/2)/2

17 Conversione dalla base 10 alla base 2 Intuitivamente: ottenere la rappresentazione binaria dalla cifra meno significativa alla cifra più significativa c m c m-1 c m-2 … c 1 c 0 Resto di N/(2 m-1 )

18 Conversione dalla base 10 alla base 2 Intuitivamente: ottenere la rappresentazione binaria dalla cifra meno significativa alla cifra più significativa c m c m-1 c m-2 … c 1 c 0 Resto di N/(2 m )

19 Conversione dalla base 10 alla base 2 Intuitivamente: ottenere la rappresentazione binaria dalla cifra meno significativa alla cifra più significativa c m c m-1 c m-2 … c 1 c 0 Resto di N/(2 m+1 )

20 Conversione dalla base 10 alla base 2 Esempio: il numero 6 10 : 6/2 = 3 resto 0 3/2 = 1 resto 1 1/2 = 0 resto 1 Leggendo i resti dal basso verso l’alto, si ha che la rappresentazione binaria del numero 6 10 è 110 2 Per una corretta verifica basta riconvertire il risultato alla base 10 –Cioè, calcolare 1 x 2 2 + 1 x 2 1 + 0 x 2 0

21 Conversione dalla base 10 alla base 2 Perché 110 2 = 6 10 ? –Considerare le seguenti equazioni: Se b>c, c x b 0 = 0 resto c b a 1 + a 2 = a 1 + a 2 b b b c x b N = c x b N-1 b

22 Conversione dalla base 10 alla base 2 Perché 110 2 = 6 10 ? c0 x 2 0 = 0 resto c0 2 c1 x 2 1 + c0 x 2 0 = c1 x 2 0 resto c0 2 c2 x 2 2 + c1 x 2 1 + c0 x 2 0 = c2 x 2 1 + c1 x 2 0 resto c0 2 … c x 2 0 = 0 resto c 2 c x 2 0 = 0 resto c 2 a 1 + a 2 = a 1 + a 2 b b b c x b N = c x b N- 1 b a 1 + a 2 = a 1 + a 2 b b b c x b N = c x b N- 1 b

23 Conversione dalla base 10 alla base 2 Perché 110 2 = 6 10 ? 6/2 = 3 resto 0 3/2 = 1 resto 1 1/2 = 0 resto 1 0 x 2 0 + 1 x 2 1 + 1 x 2 2 = 6 1 x 2 2 + 1 x 2 1 + 0 x 2 0 = 1 x 2 1 + 1 x 2 0 con resto 0 2 1 x 2 1 + 1 x 2 0 = 1 x 2 0 con resto 1 2 1 x 2 0 = 0 con resto 1 2

24 Conversione dalla base 10 alla base 2 Perché 110 2 = 6 10 ? 6/2 = 3 resto 0 3/2 = 1 resto 1 1/2 = 0 resto 1 0 x 2 0 + 1 x 2 1 + 1 x 2 2 = 6 1 x 2 2 + 1 x 2 1 + 0 x 2 0 = 1 x 2 1 + 1 x 2 0 con resto 0 2 1 x 2 1 + 1 x 2 0 = 1 x 2 0 con resto 1 2 1 x 2 0 = 0 con resto 1 2

25 Conversione dalla base 10 alla base 2 Esempio: il numero 345 10 : 345/2 = 172 resto 1 172/2 = 86 resto 0 86/2 = 43 resto 0 43/2 = 21 resto 1 21/2 = 10 resto 1 10/2 = 5 resto 0 5/2 = 2 resto 1 2/2 = 1 resto 0 1/2 = 0 resto 1 Leggendo i resti dal basso verso l’alto (in quanto si ottengono a partire dalla cifra meno significativa, l’unità), si ha che rappresentazione binaria del numero 345 10 è 101011001 2

26 Conversione dalla base 2 alla base 10 Sia c m c m-1 c m-2 … c 1 c 0 un numero rappresentato in base 2, usiamo: c m x 2 m + c m-1 x 2 m-1 + c m-2 x 2 m-2 + … + c 1 x 2 1 + c 0 x 2 0 = N 10 Esempio: 101011001 2 1 x 2 8 + 0 x 2 7 + 1 x 2 6 + 0 x 2 5 + 1 x 2 4 + 1 x 2 3 + 0 x 2 2 + 0 x 2 1 + 1 x 2 0 = 256 + 64 + 16 + 8 + 1 = 345 10

27 Conversione dalla base 10 alla base 2 Esempio: il numero 345 10 : 345/2 = 172 resto 1 172/2 = 86 resto 0 86/2 = 43 resto 0 43/2 = 21 resto 1 21/2 = 10 resto 1 10/2 = 5 resto 0 5/2 = 2 resto 1 2/2 = 1 resto 0 1/2 = 0 resto 1 Leggendo i resti dal basso verso l’alto (in quanto si ottengono a partire dalla cifra meno significativa, l’unità), si ha che rappresentazione binaria del numero 345 10 è 101011001 2

28 Conversione dalla base 2 alla base 10 Sia c m c m-1 c m-2 … c 1 c 0 un numero rappresentato in base 2, usiamo: c m x 2 m + c m-1 x 2 m-1 + c m-2 x 2 m-2 + … + c 1 x 2 1 + c 0 x 2 0 = N Esempio: 101011001 2 1 x 2 8 + 0 x 2 7 + 1 x 2 6 + 0 x 2 5 + 1 x 2 4 + 1 x 2 3 + 0 x 2 2 + 0 x 2 1 + 1 x 2 0 = 256 + 64 + 16 + 8 + 1 = 345

29 Operazioni su numeri binari Vediamo solo il caso della addizione nella codifica binaria: –Si mettono in colonna i numeri da sommare –Si calcola il riporto ogni volta che la somma parziale supera il valore 1 Addizione: 0 + 0 = 0 con riporto 0 0 + 1 = 1 con riporto 0 1 + 0 = 1 con riporto 0 1 + 1 = 0 con riporto 1

30 Operazioni su numeri binari Addizione: 0 + 0 = 0 con riporto 0 0 + 1 = 1 con riporto 0 1 + 0 = 1 con riporto 0 1 + 1 = 0 con riporto 1 Esempi: 1 + 1 = 1 0 1 0 1 + 1 1 = 1 0 0 0 1 0 1 1 0 1 0 1 + 1 0 0 0 1 1 0 = 1 1 1 1 1 0 1 1 1 1 1 + 1 1 = 1 0 1 0 Possiamo anche concludere che, ad esempio, 1 + 1 + 1 = (1 + 1) + 1 = (0 con riporto 1) + 1 = 1 con riporto 1

31 Codici a lunghezza fissa Se si usa un numero prestabilito di cifre si ha un codice a lunghezza fissa In questo modo si pone anche un limite al numero massimo rappresentabile Esempio: qual è il numero più grande rappresentabile con 4 cifre? –In base 10:9999 –In base 2:1111(=15 10 ) –In base 16:FFFF(=65535 10 ) –In base 8:7777(=4095 10 )

32 Codici a lunghezza fissa Numeri maggiori di quello massimo rappresentabile causano problemi di overflow –Ovvero per essere rappresentati richiedono più cifre di quelle a disposizione Esempio: 4 cifre –In base 10:9999 + 1= 10000 10 –In base 2:1111 + 1= 10000 2 (=16 10 ) –In base 16:FFFF + 1= 10000 16 (=65536 10 ) –In base 8:7777 + 1= 10000 8 (=4096 10 )

33 Codici a lunghezza fissa In generale, con N cifre a disposizione e base b il più grande numero (intero positivo) rappresentabile si può esprimere come b N – 1 Esempio: N=4 –In base 10:9999 = 10 4 - 1 –In base 2:1111 = 2 4 - 1 –In base 16:FFFF = 16 4 - 1 –In base 8:7777 = 8 4 - 1

34 Codici a lunghezza fissa Esempio di overflow nel sistema binario dovuto a operazioni aritmetiche: –5 + 4 = 9 (in sistema decimale) –Abbiamo usato solo un cifre decimale per il risulto Ricordiamo: 5 10 = 101 2,4 10 = 100 2 1 0 1 + 1 0 0 = 1 0 0 1 (in sistema binario) Errore: overflow (non può essere codificato 9 10 = 1001 2 con tre bit)

35 Codifica dei numeri Codificare il numero 132 10 nella corrispondente rappresentazione binaria Ordinare in modo crescente i seguente numeri: –104 10 –12 8 –10011 2 –100010000 2 –10011 10


Scaricare ppt "Informatica Lezione 3 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico: 2007-2008."

Presentazioni simili


Annunci Google