1 / 26

Informatica

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

hagen
Download Presentation

Informatica

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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

  3. Conversione dalla base 10 alla base 2 • Esempio: il numero 610: 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 610 è 1102 • Per una corretta verifica basta riconvertire il risultato alla base 10 • Cioè, calcolare 1 x 22 + 1 x 21 + 0 x 20

  4. 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

  5. Conversione dalla base 10 alla base 2 • Esempio: il numero 34510: 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 34510 è 1010110012

  6. 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

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

  8. 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

  9. 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 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 1 + 1 = 1 0

  10. 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 (=1510) • In base 16: FFFF (=6553510) • In base 8: 7777 (=409510)

  11. 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)

  12. 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 – 1 • Esempio: 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

  13. 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)

  14. 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

  15. 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

  16. 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 [-22+1, 22-1] [0, 23-1] -3 -2 -1 0 1 2 3 4 5 6 7

  17. Con 3 bit avremo: Rappresentazione dei numeri negativi • 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)

  18. 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 (01,10) • Si somma uno al risultato ottenuto al passo precedente

  19. 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

  20. 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

  21. 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

  22. Con 3 bit avremo: Complemento a due • 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

  23. 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?

  24. 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?

  25. 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?

  26. Codifica dei numeri • Codificare il numero 13210 nella corrispondente rappresentazione binaria • Ordinare in modo crescente i seguente numeri: 10410 , 128 , 1000100002 , 1001110 • Codificare il numero negativo –1210 nella rappresentazione in complemento a due

More Related