26
Informatica Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Informatica Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Embed Size (px)

Citation preview

Page 1: Informatica Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Informatica

Lezione 3

Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale)

Anno accademico: 2007-2008

Page 2: Informatica Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

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 001101003 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

Page 3: Informatica Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

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 102 + 2 x 101 + 4 x 100

– 3 è la cifra più significativa– 4 è la cifra meno significativa

Page 4: Informatica Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Codifica dei numeri (il sistema decimale)

• In generale la sequenza cn cn-1cn-2 … c1c0 (ogni “ci” è una cifra compresa tra “0” e “9”) viene interpretata come:

c0 x 100 + (c0 unità)

c1 x 101 + (c1 decine)

c2 x 102 + (c2 centinaia)

cn-1 x 10n-1 +

cn x 10n

La cifra meno significativa

La cifra più significativa

Page 5: Informatica Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

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

Page 6: Informatica Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Codifica dei numeri (il sistema binario)

• 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

Page 7: Informatica Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Codifica dei numeri (il sistema binario)

• In analogia con il caso decimale la sequenza cn cn-1cn-2 … c1c0 (ogni “ci” è la cifra “0” o la cifra “1”) rappresenterà il numero

La cifra meno significativa

La cifra più significativa

c0 x 20 +

c1 x 21 +

c2 x 22 +

… +

cn-1 x 2n-1 +

cn x 2n

Page 8: Informatica Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Codifica dei numeri

• Caso generale: considerare un sistema con base b

• La sequenza cn cn-1cn-2 … c1c0 (ogni “ci” è una cifra del sistema) rappresenterà il numero

La cifra meno significativa

La cifra più significativa

c0 x b0 +

c1 x b1 +

c2 x b2 +

… +

cn-1 x bn-1 +

cn x bn

Page 9: Informatica Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Codifica dei numeri

• Caso generale: considerare un sistema con base b

• La sequenza cn cn-1cn-2 … c1c0 (ogni “ci” è una cifra del sistema) rappresenterà il numero

La cifra meno significativa

La cifra più significativa

c0 x b0 +

c1 x b1 +

c2 x b2 +

… +

cn-1 x bn-1 +

cn x bn

Se necessario, convertiamo una

cifra ci in un numero (per esempio, nel

sistema

esadecimale, “A” significa “10”, “B”

significa “11”, e così via)

Page 10: Informatica Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Codifica dei numeri (il sistema binario)

• Esempio: la sequenza “1011” in base 2 denota il numero

1 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = 11 (in base 10)

• Esempio: la sequenza “10011” in base 2 denota il numero

1 x 24 + 0 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = 19 (in base 10)

• Per evitare ambiguità si usa la notazione

10112 = 1110, 100112 = 1910

Page 11: Informatica Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Altri basi: ottale, esadecimale

• Sistema ottale– Utilizza una notazione posizionale basata su otto

cifre (0,1,…,7) e sulle potenze di 8

– Esempio: 1038 = 1 x 82 + 0 x 81 + 3 x 80 = 6710

• 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: 10316 = 1 x 162 + 0 x 161 + 3 x 160 = 25910

– Esempio: AC416 = 10 x 162 + 12 x 161 + 4 x 160 = 275610

Page 12: Informatica Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

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 (0016 = 010 e FF16 = 25610)

• I colori predefiniti di HTML (da http://en.wikipedia.org/wiki/Web_colors):

Page 13: Informatica Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Esadecimale: esempio

• Per esempio:– Blu: 0000FF16 = 0000000000000000111111112

• Si può anche definire altri colori– Esempio dell’uso:

<font color=#FF8E2A>Ciao</font>

Page 14: Informatica Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Conversione dalla base 10 alla base 2

• Dato un numero N rappresentato in base dieci, la sua rappresentazione in base due sarà del tipo cm cm-1cm-2 … c1c0 (le “ci” 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)

Page 15: Informatica Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Conversione dalla base 10 alla base 2

• Intuitivamente: ottenere la rappresentazione binaria dalla cifra meno significativa alla cifra più significativa

cm cm-1cm-2 … c1c0

Page 16: Informatica Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Conversione dalla base 10 alla base 2

• Intuitivamente: ottenere la rappresentazione binaria dalla cifra meno significativa alla cifra più significativa

cm cm-1cm-2 … c1c0

Page 17: Informatica Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Conversione dalla base 10 alla base 2

• Intuitivamente: ottenere la rappresentazione binaria dalla cifra meno significativa alla cifra più significativa

cm cm-1cm-2 … c1c0

Page 18: Informatica Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Conversione dalla base 10 alla base 2

• Intuitivamente: ottenere la rappresentazione binaria dalla cifra meno significativa alla cifra più significativa

cm cm-1cm-2 … c1c0

Page 19: Informatica Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Conversione dalla base 10 alla base 2

• Intuitivamente: ottenere la rappresentazione binaria dalla cifra meno significativa alla cifra più significativa

cm cm-1cm-2 … c1c0

Page 20: Informatica Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Conversione dalla base 10 alla base 2

• Esempio: il numero 610:

6/2 = 3 resto 03/2 = 1 resto 11/2 = 0 resto 1

• Leggendo i resti dal basso verso l’alto, si ha che la rappresentazione binaria del numero 610 è 1102

• Per una corretta verifica basta riconvertire il risultato alla base 10– Cioè, calcolare 1 x 22 + 1 x 21 + 0 x 20

Page 21: Informatica Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Conversione dalla base 10 alla base 2

• Perché 1102 = 610 ?

– Considerare le seguenti equazioni:• c x b0 = 0 resto c b

•a1 + a2 = a1 + a2

b b b • bN = bN-1

b

Page 22: Informatica Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Conversione dalla base 10 alla base 2

• Perché 1102 = 610 ?

c0 x 20 = 0 resto c0 2

c1 x 21 + c0 x 20 = c1 x 21 resto c0 2

c2 x 22 + c1 x 21 + c0 x 20 = c2 x 21 + c1 x 20 resto c0 2…

• c x 20 = 0 resto c 2

• c x 20 = 0 resto c 2

•a1 + a2 = a1 + a2

b b b• bN = bN-1

b

•a1 + a2 = a1 + a2

b b b• bN = bN-1

b

Page 23: Informatica Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Conversione dalla base 10 alla base 2

• Perché 1102 = 610 ?6/2 = 3 resto 0

3/2 = 1 resto 1

1/2 = 0 resto 1

0 x 20 +

1 x 21 +

1 x 22

= 6

1 x 22 + 1 x 21 + 0 x 20 = 1 x 21 + 1 x 20 con resto 0

2

1 x 21 + 1 x 20 = 1 x 20 con resto 1

2

1 x 20 = 0 con resto 1

2

Page 24: Informatica Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Conversione dalla base 10 alla base 2

• Perché 1102 = 610 ?6/2 = 3 resto 0

3/2 = 1 resto 1

1/2 = 0 resto 1

0 x 20 +

1 x 21 +

1 x 22

= 6

1 x 22 + 1 x 21 + 0 x 20 = 1 x 21 + 1 x 20 con resto 0

2

1 x 21 + 1 x 20 = 1 x 20 con resto 1

2

1 x 20 = 0 con resto 1

2

Page 25: Informatica Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Conversione dalla base 10 alla base 2

• Esempio: il numero 34510:345/2 = 172 resto 1172/2 = 86 resto 086/2 = 43 resto 043/2 = 21 resto 121/2 = 10 resto 110/2 = 5 resto 05/2 = 2 resto 12/2 = 1 resto 01/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 34510 è 1010110012

Page 26: Informatica Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Conversione dalla base 2 alla base 10

• Sia cm cm-1cm-2 … c1c0 un numero rappresentato in base 2, usiamo:

cm x 2m + cm-1 x 2m-1 + cm-2 x 2m-2 + … + c1 x 21 + c0 x 20 = N10

• Esempio: 1010110012

1 x 28 + 0 x 27 + 1 x 26 + 0 x 25 + 1 x 24 + 1 x 23 + 0 x 22 + 0 x 21 + 1 x 20

=256 + 64 + 16 + 8 + 1

= 34510