Informatica

26
Informatica Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico: 2005-2006

description

Informatica. Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico: 2005-2006. Conversione dalla base 10 alla base 2. - PowerPoint PPT Presentation

Transcript of Informatica

Page 1: Informatica

Informatica

Lezione 3

Scienze e tecniche psicologiche dello sviluppo e dell'educazioneAnno accademico: 2005-2006

Page 2: Informatica

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

Page 3: Informatica

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 4: Informatica

Conversione dalla base 10 alla base 2

Perché 1102 = 610 ?

6/2 = 3 resto 0 0 x 20 +

3/2 = 1 resto 1 1 x 21 +

1/2 = 0 resto 1 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 5: Informatica

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 6: Informatica

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 = N

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

= 345

Page 7: Informatica

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 = 67

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 = 259 Esempio: AC416 = 10 x 162 + 12 x 161 + 4 x 160 = 2756

Page 8: Informatica

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 00 + 1 = 1 con riporto 01 + 0 = 1 con riporto 01 + 1 = 0 con riporto 1

Page 9: Informatica

Operazioni su numeri binari

Addizione:0 + 0 = 0 con riporto 00 + 1 = 1 con riporto 01 + 0 = 1 con riporto 01 + 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

Page 10: Informatica

Codici a lunghezza fissa

Se si usa un numero prestabilito di cifre si ha un codice a lunghezza fissaIn questo modo si pone anche un limite al numero massimo rappresentabileEsempio: qual è il numero più grande rappresentabile con 4 cifre? In base 10: 9999 In base 2: 1111 (=1510) In base 16: FFFF (=6553510) In base 8: 7777 (=409510)

Page 11: Informatica

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 = 1000010

In base 2: 1111 + 1 = 100002 (=1610) In base 16: FFFF + 1 = 1000016 (=6553610) In base 8: 7777 + 1 = 100008 (=409610)

Page 12: Informatica

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

bN – 1Esempio: N=4 In base 10: 9999 = 104 - 1 In base 2: 1111 = 24 - 1 In base 16: FFFF = 164 - 1 In base 8: 7777 = 84 - 1

Page 13: Informatica

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: 510 = 1012 , 410 = 1002

Errore: overflow (non può essere codificato

910 = 10012 con tre bit)

1 0 1 + 1 0 0 =1 0 0 1

(in sistema binario)

Page 14: Informatica

Rappresentazione dei numeri

Possiamo rappresentare i numeri usando un numero variabile di cifre (che dipende dal valore che si vuole rappresentare)

Come? Introduciamo un simbolo speciale che indica dove termina la rappresentazione di un numero e inizia quella del numero successivo

Esempio: 1001#11#1 (codice a lunghezza variabile, # separatore)

Esistono anche “codici di espansione”, che permettono di definire dei codici a lunghezza variabile senza far uso del carattere di separazione

Page 15: Informatica

Rappresentazione dei numeri

In realtà, una semplice codifica binaria come quella discussa fino ad ora non è sufficiente, per due motivi: Numeri negativi Numeri con la virgola

Per questi numeri vengono utilizzate delle rappresentazioni differenti Per esempio “complemento a due” per

rappresentare i numeri negativi

Page 16: Informatica

Rappresentazione dei numeri negativi

Si può pensare di usare un bit per il segno “0” identifica “+” “1” identifica “-”

Gli altri bit vengono usati per codificare il valore assoluto (modulo) del numero

-3 -2 -1 0 1 2 3 4 5 6 7

[-22+1, 22-1][0, 23-1]

Page 17: Informatica

Rappresentazione dei numeri negativi

Con 3 bit avremo:

000 +0

001 +1

010 +2

011 +3

100 -0

101 -1

110 -2

111 -3

Problemi: Il numero 0 ha

due rappresentazioni

Per l’operazione di somma si deve tener conto dei segni degli addendi 0 0 1 0 + (+2)

1 0 1 1 = (-3) 1 1 0 1 (-5 ERRATO)

Page 18: Informatica

Rappresentazione dei numeri negativi

Complemento a due: Il bit più significativo rappresenta il segno del numero: 0

per i numeri positivi e 1 per i numeri negativi La rappresentazione di un numero positivo si ottiene

codificando il valore assoluto del numero con i bit restanti

La rappresentazione di un numero negativo si ottiene in tre passi:

Si rappresenta in complemento a due il numeri positivo con lo stesso valore assoluto del numero negativo da codificare

Si invertono tutti i bit in tale rappresentazione (01,10) Si somma uno al risultato ottenuto al passo precedente

Page 19: Informatica

Complemento a due

Esempio (con 4 bit a disposizione): La codifica di +5 è 0101 La codifica del numero –5 avviene in tre

passi: La rappresentazione in complemento a due di +5

è 0101 Invertendo tutti i bit si ottiene 1010 Sommando 1 si ottiene 1011, la rappresentazione

in complemento a due di -5

Page 20: Informatica

Complemento a due

Per ottenere un numero con segno data la sua rappresentazione in complemento a due: Se il primo bit è 0 il numero è positivo: per

calcolarne il valore assoluto si esegue la conversione da binario a decimale

Se il primo bit è 1 il numero è negativo: Si ignora il primo bit Si invertono i restanti bit Si converte il numero da binario a decimale Si somma uno al numero ottenuto per ottenere il

valore assoluto del numero negativo

Page 21: Informatica

Complemento a due

Esempio: 1011 Si esclude il primo bit Invertendo 011 si ottiene 100 che è codifica

di 4 Va aggiunto 1 per ottenere il valore assoluto

5 Il risultato è quindi -5

Page 22: Informatica

Complemento a due

Con 3 bit avremo:000 +0

001 +1

010 +2

011 +3

100 -4

101 -3

110 -2

111 -1

Esempi di addizione: 0 0 1 0 +

(+2) 1 0 1 1 = (-5) 1 1 0 1

(-3)

0 1 1 1 + (+7) 1 0 1 1 = (-5) 0 0 1 0

(+2)

Nel secondo esempio, l’overflow è ignorato

Page 23: Informatica

Codifica dell’informazione

Quanti bit si devono utilizzare per rappresentare 300 informazioni distinte?Quanti byte occupa la parola “psicologia” se la si codifica utilizzando il codice ASCII?Dati 12 bit per la codifica, quante informazioni distinte si possono rappresentare?

Page 24: Informatica

Codifica delle immagini

Quanti byte occupa un’immagine di 100 x 100 pixel in bianco e nero?Quanti byte occupa un’immagine di 100 x 100 pixel a 256 colori?Se un’immagine a 16777216 di colori occupa 2400 byte, da quanti pixel sarà composta?

Page 25: Informatica

Codifica dei suoni

Quanto spazio occupa un suono della durata di 10 secondi campionato a 100 Hz (100 campioni al secondo), in cui ogni campione occupa 4 byte?

Page 26: Informatica

Codifica dei numeri

Codificare il numero 13210 nella corrispondente rappresentazione binariaOrdinare in modo crescente i seguente numeri: 10410 , 128 , 1000100002 , 1001110

Codificare il numero negativo –1210 nella rappresentazione in complemento a due