Rappresentazione delle informazioni

Documenti analoghi
Rappresentazione delle informazioni

RAPPRESENTAZIONE DELLE INFORMAZIONI

RAPPRESENTAZIONE DELLE INFORMAZIONI

Avviso. iniziative/in-corso/diamoglicredito.aspx

La codifica del testo

Codifica dell Informazione

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Codifica dell Informazione

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Il sistema binario: bit e Byte Codifica del testo Il Byte come U.d.M. dell'informazione Multipli del Byte

o Occorre rappresentare tale informazione in formato facilmente manipolabile dall elaboratore

Codifica dei caratteri

Calcolatore e unità di misura

Rappresentazione dell informazione

Informatica. Mario Pavone - Dept. Mathematics & Computer Science - University of Catania. Trasferimento. Ambiente esterno.

La codifica delle immagini

Un ripasso di aritmetica: Conversione dalla base 10 alla base 2

Pag. 1. La Rappresentazione e la Codifica delle informazioni (parte 2) Tipi di dati. Informatica Facoltà di Medicina Veterinaria

La codifica delle immagini

Numeri in virgola mobile

Programma del corso. Rappresentazione delle Informazioni. Introduzione agli algoritmi. Architettura del calcolatore

La codifica. dell informazione

RAPPRESENTAZIONE DEI DATI SISTEMI DI MISURA

CODIFICA DI CARATTERI

Rappresentazione dei numeri: il sistema di numerazione decimale

Architettura di un elaboratore. Rappresentazione dell informazione digitale

Corso di Informatica

CODIFICA DI CARATTERI

Fondamenti di Informatica

CODIFICA IMMAGINI IN BIANCO E NERO

Corso di Architettura degli Elaboratori

L'Informazione e la sua Codifica. Maurizio Palesi

La codifica binaria. Informatica B. Daniele Loiacono

Tecnologie per il web e lo sviluppo multimediale. Rappresentazione delle informazioni

Per approfondire: La rappresentazione delle informazioni all interno dei computer

La codifica digitale

Analogico vs. Digitale. LEZIONE II La codifica binaria. Analogico vs digitale. Analogico. Digitale

La codifica. dell informazione. Tipi di informazione

La codifica dell informazione

Concetti Introduttivi. Rappresentazione delle informazioni

La codifica dell informazione. Rappresentazione binaria. Rappresentazione posizionale in base 10

La codifica delle immagini

Somma di numeri binari

I.4 Rappresentazione dell informazione - Altre codifiche

Codifica binaria dell informazione

La rappresentazione delle informazioni

Numeri interi. Laboratorio di Calcolo Paola Gallo

Rappresentazione delle informazioni LA RAPPRESENTAZIONE DELLE INFORMAZIONI. Grandezze digitali. Grandezze analogiche

LA CODIFICA DELL INFORMAZIONE

Sistemi di Elaborazione delle Informazioni

La rappresentazione delle informazioni in un computer. La numerazione binaria

La codifica. dell informazione

Abilità Informatiche. capitoli 1-2. Prof. Fabio Calefato a.a Giurisprudenza

La "macchina" da calcolo

Codifica binaria. Rappresentazioni medianti basi diverse

Tipi di Informazione

Rappresentazione dei numeri. Esercizio. Rappresentazione dei numeri. Informazione multimediale

Rappresentazione dell informazione

Aritmetica dei Calcolatori Elettronici

Esame di Informatica. Facoltà di Scienze Motorie LE UNITA DI MISURA (1/4) LE UNITA DI MISURA (3/4) LE UNITA DI MISURA (2/4) Lezione 2

Rappresentazione dei numeri naturali. La codifica associa alle informazioni dell alfabeto sorgente uno o più simboli dell alfabeto codice:

Introduzione. Elementi di Informatica. Sistemi di Numerazione Addizionali. Sistemi di Numerazione. Sistemi di Numerazione Romano

Lezione 2. Rappresentazione dell informazione

Rappresentazione di immagini a colori. Rappresentazione dei colori. Rappresentazione dei colori LA RAPPRESENTAZIONE DELL INFORMAZIONE - II

Modulo 1. Concetti base della Tecnologia dell informazione. Prof. Nicolello Cristiano. Modulo 1

1.2 Concetti base dell Informatica: Informazione

Codifica binaria dell informazione

La codifica binaria. Fondamenti di Informatica. Daniele Loiacono

Sistemi di Elaborazione delle Informazioni

La Rappresentazione dell Informazione

Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale

Corso di Informatica

Programma del corso. Rappresentazione delle Informazioni. Introduzione agli algoritmi. Architettura del calcolatore. Elementi di Programmazione

Parte Terza: Codificare l informazione. Fondamenti di informatica

Segnale analogico. Analogico vs digitale. Segnale digitale. Trasformazione da analogico a digitale

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2

La codifica dell informazione

Informazione multimediale

La Rappresentazione dell Informazione

Codifica delle Informazioni

Rappresentazione dell'informazione

Rappresentazione digitale delle informazioni

La codifica binaria. Informatica B. Daniele Loiacono

Rappresentazione binaria. Laboratorio di Informatica. Calcolatori digitali. N: numeri naturali. La codifica binaria. I primi 16 numeri binari

La codifica dei numeri

Codifica dell informazione

Elementi di informatica

I.4 Rappresentazione dell informazione

La rappresentazione delle Informazioni

modificato da andynaz Cambiamenti di base Tecniche Informatiche di Base

La rappresentazione delle informazioni

Informatica. Terzo anno Prof. A. Longheu

Appunti di informatica. Lezione 4 anno accademico Mario Verdicchio

Insegnamento Informatica CdS Scienze Giuridiche

Fondamenti di Informatica. per la Sicurezza. a.a. 2003/04. Calcolo binario. Stefano Ferrari

senza togliersi le scarpe

Rappresentazione dell Informazione. Sistemi di Elaborazione delle Informazioni Rappresentazione Informazione 1

Come si misura la memoria di un calcolatore?

INFORMATICA GENERALE E BASI DI DATI PER ARCHIVI AUDIOVISIVI (PRIMO MODULO) Claudio Piciarelli A.A. 2013/2014

Conversione di base. Conversione decimale binario. Si calcolano i resti delle divisioni per due

Transcript:

1

Tipi di segnali Segnali digitali insieme discreto di valori, ad esempio due stati semplici da distinguere Es.: interruttore on/off Segnali analogici insieme continuo di valori, trasmettono molte sensibili alle interferenze Es.: variatore di luminosità 2

Digitale e analogico Digitale o analogico? accensione di una vettura lancette di un orologio tasti di una calcolatrice volume di uno stereo Vantaggi del digitale: semplice non ambiguo (non sensibile alle interferenze) riproducibile senza errori 3

Il bit Segnale binario: segnale discreto su due valori bit: binary digit (cifra binaria) Elemento di base per rappresentare le 4

Il bit Perché il sistema binario? è semplice può rappresentare quasi ogni informazione 5

Come viene realizzato un bit direzione di magnetizzazione presenza/ assenza di corrente/tensione passaggio/non passaggio di luce 6

7

Un bit rappresenta 2 possibili Es.: sì/no, on/off, su/giù, vero/falso Combinando più bit si rappresentano più. 2 bit 4 : 00, 01, 10, 11 Es.: Un esame con 4 possibili esiti: insufficiente (00), sufficiente (01), buono (10), ottimo (11) La corrispondenza concetto/configurazione di bit è una convenzione! 8

Con 1 bit si rappresentano 2 Con 2 bit si rappresentano 4 (2 2 ) Con 3 bit si rappresentano 8 (2 3 ) Con N bit si rappresentano 2 N 9

Potenze di 2 Potenza 2 0 1 2 1 2 2 2 2*2 = 4 2 3 2*2*2 = 8 2 4 2*2*2*2 = 16 2 5 2*2*2*2*2 = 32 2 6 2* *2 = 64 2 7 2* *2 = 128 2 8 2* *2 = 256 Valore 10

Per rappresentare K, si deve utilizzare un numero di bit sufficiente per esprimerle tutte, per cui devo scegliere N in modo che 2 N K 11

Esempio Per rappresentare 61 diverse si devono usare N bit tali che 5 bit non sono sufficienti, infatti Occorrono almeno 6 bit, infatti 2 N 61 2 5 = 32 < 61 2 6 = 64 61 Un insieme di 6 bit può assumere 64 configurazioni diverse: 000000 / 000001 / 000010 / / 111110 / 111111 Alcune sequenze (la 62 a, la 63 a e la 64 a ) non vengono utilizzate 12

Riassumendo: 1 bit può assumere 2 valori N bit possono assumere 2 N valori, che permettono di rappresentare 2 N Quindi: Per rappresentare K, si devono usare N bit, in modo che 2N K 13

Il Byte È stato attribuito un significato particolare ai gruppi di 8 bit; 8 bit formano un byte 8 bit => 2 8 = 256 diverse Il byte viene utilizzato - insieme al bit - come unità di misura per esprimere la capacità della memoria, la potenza di un calcolatore, la velocità di trasmissione di una linea 14

Unità di misura (bit) Tra parentesi la nomenclatura standard ma meno usuale Valore Nome Abbreviazione Potenza 1 bit b 2 0 1.024 Kilobit (kibibit) Kb (Kib) 2 10 1.048.576 Megabit (Mebibit) Mb (Mib) 2 20 1.073.741.824 Gigabit (Gibibit) Gb (Gib) 2 30 1.099.511.627.776 Terabit (Tebibit) Tb (Tib) 2 40 15

Unità di misura (byte) Tra parentesi la nomenclatura standard ma meno usuale analoghe al bit. (1 byte = 8 bit) Valore Nome Abbreviazione Potenza 1 byte B 2 0 1.024 Kilobyte (kibibyte) KB (KiB) 2 10 1.048.576 Megabyte (Mebibyte) MB (MiB) 2 20 1.073.741.824 Gigabyte (Gibibyte) GB (GiB) 2 30 1.099.511.627.776 Terabyte (Tebibyte) TB (TiB) 2 40 16

Rappresentazione dei numeri Ci serve una rappresentazione adatta all elaboratore, ma prima di tutto ci serve fare un po di chiarezza sui problemi legati alla rappresentazione dei numeri. Iniziamo con il distinguere tra numerale e numero. numerale: simbolo che rappresenta un numero I numerali differiscono dai numeri come le parole differiscono dai concetti che rappresentano Es.: 6, sei, VI, six rappresentano tutti lo stesso numero What s in a name? That which we call a rose by any other name would smell as sweet. 17

Notazione Posizionale Obiettivo: Stiamo cercando un modo efficiente di rappresentare i numeri (i.e. delle quantità). Soluzione inefficiente: usiamo un simbolo per indicare un oggetto. Scriviamo III per indicare il numero tre. Scriviamo IIIII per indicare il numero cinque. Problema: Utilizziamo tanti simboli quanti sono gli oggetti. Non è una soluzione praticabile quando gli oggetti sono nell ordine dei milioni. 18

Notazione Posizionale 2 1 Posizione 0 19

Notazione Posizionale La notazione posizionale non è l unica possibile (es. i numeri romani non sono in notazione posizionale) Vantaggi della notazione posizionale: Efficiente - Il numero di oggetti indicato cresce esponenzialmente con il numero di cifre usate Potente - Gli algoritmi che implementano le quattro operazioni sono semplici 20

Il sistema di numerazione decimale Decimale: alfabeto di 10 cifre 0, 1, 2,, 9 numerale 245: 2 centinaia, 4 decine, 5 unità, cioè 2 volte 10 2 + 4 volte 10 1 + 5 volte 10 0 La potenza di 10 da considerare dipende dalla posizione della cifra 21

Il sistema di numerazione decimale Notazione posizionale: la posizione di una cifra in un numerale indica il suo peso in potenze di 10 I pesi sono: unità = 10 0 = 1 (posizione 0) decine = 10 1 = 10 (posizione 1) centinaia = 10 2 = 100 (posizione 2) migliaia = 10 3 = 1000 (posizione 3) 22

Rappresentazione decimale Il numerale 3704 in notazione decimale (= in base 10) rappresenta la quantità: 3704 (numerale) = 3*10 3 + 7*10 2 + 0*10 1 + 4*10 0 = 3000 + 700 + 0 + 4 = 3704 (numero) N.B.: Di norma utilizziamo un unico sistema (quello decimale) per la rappresentazione dei numeri. Pertanto è comune confondere numero e numerale. In realtà esiste un numero infinito di modi di rappresentare lo stesso numero. Se vogliamo evitare ambiguità, usiamo la notazione 3704 10 23

Il sistema di numerazione binario Binario: alfabeto di 2 cifre di base 0, 1 numerale 101 2 : 1 volta 2 2, 0 volte 2 1, 1 volta 2 0 La potenza di 2 da considerare dipende dalla posizione della cifra 24

Il sistema di numerazione binario Notazione posizionale: la posizione di una cifra in un numerale indica il suo peso in potenze di 2 I pesi sono: 2 0 = 1 (posizione 0) 2 1 = 2 (posizione 1) 2 2 = 4 (posizione 2) 2 3 = 8 (posizione 3) 25

Rappresentazione binaria Il numerale 10010011 2 in notazione binaria (o in base 2) rappresenta la quantità: 10010011 2 (numerale) = 1*2 7 + 0*2 6 + 0*2 5 + 1*2 4 + 0*2 3 + 0*2 2 + 1*2 1 + 1*2 0 = 128 + 0 + 0 + 16 + 0 + 0 + 2 + 1 = 147 (numero) 26

Rappresentazione binaria 27

Massimo numero rappresentabile Massimo numero rappresentabile: il numero più grande esprimibile con un dato numero di cifre (decimali, binarie, ) NON coincide con il numero di rappresentabili! Per esempio, con 2 cifre decimali rappresento 100 numeri distinti, ma il numero più grande che posso rappresentare utilizzando la notazione decimale a due cifre è 99 10 (Questo perché si inizia a contare da 0) 28

Massimo numero rappresentabile Numeri a 2 cifre Sistema decimale: 100 (10 2 ) numeri diversi da 0 10 a 99 10, cioè da 0 a 10 2 1 massimo numero rappresentabile: 10 2 1 Sistema binario: 4 (2 2 ) numeri diversi da 0 2 a 11 2 (da 0 a 3), cioè da 0 a 2 2 1 massimo numero rappresentabile: 2 2 1 29

Massimo numero rappresentabile Numeri a N cifre Sistema decimale: 10 N numeri diversi da 0 10 a 9 9 10, cioè da 0 a 10 N 1 N volte massimo numero rappresentabile: 10 N 1 Sistema binario: 2 N numeri diversi da 0 2 a 1 1 2, cioè da 0 a 2 N 1 N volte massimo numero rappresentabile: 2 N 1 30

Massimo numero rappresentabile Esempio con 8 cifre: 11111111 2 (8 bit) = 2 8-1 = 255 10 Per rappresentare il numero 256 10 ci vuole un bit in più: 256 10 = 100000000 2 = 1*2 8 31

Riassumendo... Definendo il numero di cifre con cui si rappresentano i numeri, si definisce anche il massimo numero rappresentabile: con 16 bit: 2 16-1 = 65.535 con 32 bit: 2 32-1 = 4.294.967.295 con 64 bit: 2 64-1 = 18446744073709551615 1,84 * 10 19 È possibile rappresentare numeri più grandi a spese della precisione 32

Incoraggiamento In mathematics you don t understand things. You just get used to them. John von Neumann, matematico e pioniere dell Informatica 33

Conversione da base 2 a base 10 È sufficiente moltiplicare ogni bit per il suo peso e sommare. 34

Conversione da base 2 a base 10 È sufficiente moltiplicare ogni bit per il suo peso e sommare. Esempio: 11010 2 = 35

Conversione da base 2 a base 10 È sufficiente moltiplicare ogni bit per il suo peso e sommare. Esempio: 11010 2 = 1*2 4 + 1*2 3 + 0*2 2 + 1*2 1 + 0*2 0 = 36

Conversione da base 2 a base 10 È sufficiente moltiplicare ogni bit per il suo peso e sommare. Esempio: 11010 2 = 1*2 4 + 1*2 3 + 0*2 2 + 1*2 1 + 0*2 0 = = 16 + 8 + 2 = 26 10 = 26 37

Conversione da base 2 a base 10 È sufficiente moltiplicare ogni bit per il suo peso e sommare. Esempio: Somma di potenze di 2! 11010 2 = 1*2 4 + 1*2 3 + 0*2 2 + 1*2 1 + 0*2 0 = = 16 + 8 + 2 = 26 10 = 26 38

Conversione da base 2 a base 10 È sufficiente moltiplicare ogni bit per il suo peso e sommare. Esempio: Somma di potenze di 2! Notiamo: 11010 2 = 1*2 4 + 1*2 3 + 0*2 2 + 1*2 1 + 0*2 0 = = 16 + 8 + 2 = 26 10 = 26 un numero la cui rappresentazione binaria termina con 0 è pari, altrimenti (con 1) è dispari il resto della divisione di un numero per 2 è 0 se il numero è pari, 1 se è dispari Il resto della divisione di un numero per 2 è 0 se l ultima cifra della sua rappresentazione binaria è 0, il resto è 1 se l ultima cifra è 1. 39

Conversione da base 10 a base 2 Idea: effettuiamo divisioni successive per 2 del numero N e consideriamo i resti 40

Conversione da base 10 a base 2 Idea: effettuiamo divisioni successive per 2 del numero N e consideriamo i resti Algoritmo: Passo 1: Dividere N per 2 e memorizzare il resto 41

Conversione da base 10 a base 2 Idea: effettuiamo divisioni successive per 2 del numero N e consideriamo i resti Algoritmo: Passo 1: Dividere N per 2 e memorizzare il resto Passo 2: Ripetere il passo 1 finché il numero diventa 0 42

Conversione da base 10 a base 2 Idea: effettuiamo divisioni successive per 2 del numero N e consideriamo i resti Algoritmo: Passo 1: Dividere N per 2 e memorizzare il resto Passo 2: Ripetere il passo 1 finché il numero diventa 0 Passo 3: Prendere i resti in ordine inverso e scriverli da sinistra a destra 43

Conversione da base 10 a base 2 Consideriamo il numerale 190 10 : 44

Conversione da base 10 a base 2 Consideriamo il numerale 190 10 : 190/2 = 95 resto 0 45

Conversione da base 10 a base 2 Consideriamo il numerale 190 10 : 190/2 = 95 resto 0 95/2 = 47 resto 1 46

Conversione da base 10 a base 2 Consideriamo il numerale 190 10 : 190/2 = 95 resto 0 95/2 = 47 resto 1 47/2 = 23 resto 1 47

Conversione da base 10 a base 2 Consideriamo il numerale 190 10 : 190/2 = 95 resto 0 95/2 = 47 resto 1 47/2 = 23 resto 1 23/2 = 11 resto 1 48

Conversione da base 10 a base 2 Consideriamo il numerale 190 10 : 190/2 = 95 resto 0 95/2 = 47 resto 1 47/2 = 23 resto 1 23/2 = 11 resto 1 11/2 = 5 resto 1 49

Conversione da base 10 a base 2 Consideriamo il numerale 190 10 : 190/2 = 95 resto 0 95/2 = 47 resto 1 47/2 = 23 resto 1 23/2 = 11 resto 1 11/2 = 5 resto 1 5/2 = 2 resto 1 50

Conversione da base 10 a base 2 Consideriamo il numerale 190 10 : 190/2 = 95 resto 0 95/2 = 47 resto 1 47/2 = 23 resto 1 23/2 = 11 resto 1 11/2 = 5 resto 1 5/2 = 2 resto 1 2/2 = 1 resto 0 51

Conversione da base 10 a base 2 Consideriamo il numerale 190 10 : 190/2 = 95 resto 0 95/2 = 47 resto 1 47/2 = 23 resto 1 23/2 = 11 resto 1 11/2 = 5 resto 1 5/2 = 2 resto 1 2/2 = 1 resto 0 1/2 = 0 resto 1 52

Conversione da base 10 a base 2 Consideriamo il numerale 190 10 : 190/2 = 95 resto 0 95/2 = 47 resto 1 47/2 = 23 resto 1 23/2 = 11 resto 1 11/2 = 5 resto 1 5/2 = 2 resto 1 2/2 = 1 resto 0 1/2 = 0 resto 1 Leggiamo i resti dal basso verso l alto 53

Conversione da base 10 a base 2 Consideriamo il numerale 190 10 : 190/2 = 95 resto 0 95/2 = 47 resto 1 47/2 = 23 resto 1 23/2 = 11 resto 1 11/2 = 5 resto 1 5/2 = 2 resto 1 2/2 = 1 resto 0 1/2 = 0 resto 1 Leggiamo i resti dal basso verso l alto: la rappresentazione binaria del numerale 190 10 è 10111110 2 54

Perché funziona? Il numero che vogliamo rappresentare ha una rappresentazione binaria del tipo x N x N-1 x 1 x 0 Il numero si può pensare come la somma di potenze di due: x N *2 N +x N-1 *2 N-1 + +x 1 *2 1 +x 0 *2 0 55

Perché funziona? Proviamo a dividere il numero per due e vediamo cosa succede Notiamo: (x N *2 N +x N-1 *2 N-1 + +x 1 *2 1 +x 0 *2 0 )/2 = x N *2 N-1 +x N-1 *2 N-2 + +x 1 *2 0 con resto x 0 Il resto della divisione è pari alla cifra meno significativa del numero che cerchiamo Il risultato della divisione ha le stesse cifre binarie del numero originale (tranne l ultima), ma queste sono spostate tutte a destra di una posizione. 56

Numeri positivi e negativi Problema Come rappresentare anche i numeri negativi? 57

Numeri positivi e negativi Problema Come rappresentare anche i numeri negativi? Soluzione ingenua (provvisoria) Usiamo: 1 bit per rappresentare il segno gli altri bit per rappresentare il valore assoluto del numero 58

Numeri positivi e negativi Il segno viene rappresentato dal bit più significativo (MSB), il bit più a sinistra: 0 indica un numero positivo 1 indica un numero negativo 59

Numeri positivi e negativi Il segno viene rappresentato dal bit più significativo (MSB), il bit più a sinistra: 0 indica un numero positivo 1 indica un numero negativo Problema: due rappresentazioni dello 0: -0, +0 60

Numeri positivi e negativi Il segno viene rappresentato dal bit più significativo (MSB), il bit più a sinistra: 0 indica un numero positivo 1 indica un numero negativo Problema: due rappresentazioni dello 0: -0, +0 Occorre una rappresentazione diversa: Complemento a due (argomento non trattato a lezione, lasciato nelle slide per completezza) 61

Rappresentazione in complemento a due Anziché usare un byte per rappresentare i numeri da 0 a 255, lo usiamo per i numeri da -128 a 127: da 00000000 2 = 0 10 a 01111111 2 = 127 10 e da 10000000 2 = -128 10 a 11111111 2 = -1 10 62

Rappresentazione in complemento a due Analogamente: usando 16 bit rappresentiamo da 2 15 a 2 15 1 cioè da 32768 a +32767 usando 32 bit rappresentiamo da 2 31 a 2 31 1 cioè da 2.147.483.648 a +2.147.483.647 usando N bit rappresentiamo da 2 N-1 a 2 N-1 1 63

Rappresentazione in complemento a due Come realizzo praticamente questa idea? 1. Lasciamo inalterata la codifica dei numeri positivi Esempio: Supponiamo di volere usare 3 bit per la codifica. Possiamo codificare 8 valori: -4,-3,-2,-1,0,1,2,3 Lasciando inalterata la codifica dei numeri positivi otteniamo: 000 0 001 1 010 2 011 3 64

Rappresentazione in complemento a due Come realizzo praticamente questa idea? 1. Lasciamo inalterata la codifica dei numeri positivi 2. Per rappresentare i numeri negativi abbiamo a disposizione i numerali 100-1 101-2 110-3 111-4 65

Rappresentazione in complemento a due 66

Rappresentazione in complemento a due 67

Conversione da complemento a due su N bit a decimale Il bit più significativo identifica il segno (0 +, 1 ) 68

Conversione da complemento a due su N bit a decimale Il bit più significativo identifica il segno (0 +, 1 ) se il numero è positivo, fare conversione usuale 000 0 001 1 010 2 011 3 69

Conversione da complemento a due su N bit a decimale Il bit più significativo identifica il segno (0 +, 1 ) se il numero è positivo, fare conversione usuale se il numero è negativo, fare conversione usuale e sottrarre 2 N 100 4-2 3 = -4 101 5-2 3 = -3 110 6-2 3 = -2 111 7-2 3 = -1 70

Conversione da complemento a due su N bit a decimale Il bit più significativo identifica il segno (0 +, 1 ) se il numero è positivo, fare conversione usuale se il numero è negativo, fare conversione usuale e sottrarre 2N oppure invertire i bit (0 <-> 1, 1 <-> 0), fare conversione usuale, sommare 1, cambiare segno 71

Esempi Numero positivo 01001101 2 = 2 6 +2 3 + 2 2 + 2 0 = 64 + 8 + 4 + 1 = 77 10 Numero negativo 10001010 2 = 138 10 2 8 = 138 10 256 10 = -51 10 = -118 10 oppure 10001010 2 = 01110101 2 = 117 10 = 117 10 + 1 10 = 118 10 = - 118 10 72

Vantaggi della codifica in complemento a due Facile passare dalla rappresentazione decimale a quella in complemento a due e viceversa L operazione di somma (e di conseguenza la sottrazione, la moltiplicazione, ) rimane invariata (questa è una caratteristica molto importante di questa codifica) 73

L operazione di somma rimane invariata! 1+1 = 001 + 001 = 10 = 2 74

L operazione di somma rimane invariata! 2-1 = 2 + (-1) = 010 + 111 = 001= 1 75

Rappresentazione dei caratteri 76

Rappresentazione dei caratteri Per rappresentare i caratteri, occorre stabilire una convenzione per la corrispondenza tra configurazione di bit e carattere: codice ASCII (American Standard Code for Information Interchange) 77

Codice ASCII Usa i 7 bit meno significativi di un byte (2 7 = 128 diversi caratteri rappresentabili) Rappresenta oltre ad altri caratteri le lettere dell alfabeto anglosassone maiuscole e minuscole, le cifre, i segni di punteggiatura Esiste un codice ASCII esteso, che usa 8 bit, ma non è standard; cambia con la lingua usata 78

Codice ASCII Codice ASCII esteso Codice ASCII 79

Rappresentazione dei caratteri UNICODE: standard proposto per coprire le principali lingue (sistemi di scrittura): alfabeto latino, arabo, cirillico, ebraico, greco, hàn, hiragana e katakana, hangul, braille, IPA caratteri codificati con 1, 2 o 4 byte attualmente rappresentati oltre 96000 caratteri 80

Esempio di codifica ASCII Codifica della parola casa : c a s a 01100011 01100001 01110011 01100001 Il codice ASCII contiene anche la codifica per lo spazio (anch esso è un carattere! ASCII 32) e il simbolo di fine riga CR (ASCII 13) Con questi caratteri è quindi possibile codificare un testo strutturato 81

Esempio di decodifica ASCII A partire da una sequenza di bit in codice ASCII, si vuole conoscere la rappresentazione in caratteri: 011010010110110000100000010100000110111100101110 82

Esempio di decodifica ASCII A partire da una sequenza di bit in codice ASCII, si vuole conoscere la rappresentazione in caratteri: si divide la sequenza in gruppi di 8 bit (ogni gruppo è un byte) si determina il carattere corrispondente a ogni gruppo 01101001 01101100 00100000 01010000 01101111 00101110 105=i 108=l 32= 80=P 111=o 46=. 83

Codifica ASCII dei numeri N.B.: le cifre da 0 a 9 rappresentate in ASCII sono caratteri (simboli) e non quantità numeriche, quindi: NON possono essere utilizzati per rappresentare quantità da utilizzare in calcoli aritmetici Non è così strano: tutti i giorni usiamo i numeri telefonici, che sono sequenze di simboli, con essi non facciamo calcoli aritmetici 84

Codifica ASCII dei numeri N.B.: le cifre da 0 a 9 rappresentate in ASCII sono caratteri (simboli) e non quantità numeriche, quindi: il numero 4 è rappresentato in binario per mezzo del numerale 00000100 2 la cifra 4 è rappresentata in ASCII dal codice 52=00110100 2 85

Codifica delle immagini 86

Codifica delle immagini Vi sono varie tecniche utilizzate per memorizzare in modo digitale un immagine, e poi elaborarla Per semplificare, immaginiamo di dover codificare un immagine in bianco e nero (dual tone, con soli due colori) L immagine da codificare 87

Codifica delle immagini L immagine da codificare viene suddivisa da una griglia formata da linee a distanza costante 88

Codifica delle immagini Ogni quadrato derivante da tale suddivisione viene chiamato pixel (picture element) e può essere codificato in binario con la convenzione che: 0 rappresenta un pixel bianco (ovvero in cui il bianco è predominante) 1 rappresenta un pixel nero (ovvero in cui il nero è predominante 89

Codifica delle immagini 90

Codifica delle immagini 91

Codifica delle immagini 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 92

Codifica delle immagini 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 Problema: per avere una sequenza di bit, in quale ordine leggere i pixel? Occorre una convenzione: qui assumiamo da sinistra destra, e dal basso verso l alto La rappresentazione della figura è quindi: 0000000 0111100 0110000 0100000 93

Codifica delle immagini Non sempre il contorno della figura coincide con le linee della griglia: digitalizzando un immagine si ha sempre un approssimazione dell immagine stessa 94

Codifica delle immagini 0 0 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 22 23 24 25 26 27 28 0 0 0 15 16 17 18 19 20 21 0 0 8 9 10 11 12 13 14 0 0 0 0 0 0 1 2 3 4 5 6 7 95

Codifica delle immagini 0 0 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 22 23 24 25 26 27 28 0 0 0 15 16 17 18 19 20 21 0 0 8 9 10 11 12 13 14 0 0 0 0 0 0 1 2 3 4 5 6 7 0000000 0111100 0110000 0100000 96

Codifica delle immagini 0 0 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 22 23 24 25 26 27 28 0 0 0 15 16 17 18 19 20 21 0 0 8 9 10 11 12 13 14 0 0 0 0 0 0 1 2 3 4 5 6 7 0000000 0111100 0110000 0100000 97

Codifica delle immagini Problema. Come avere un immagine più fedele? 98

Codifica delle immagini Problema. Come avere un immagine più fedele? Idea! Aumentiamo la risoluzione, cioè il numero dei pixel (e rimpiccioliamo i quadratini della griglia di campionamento) 99

Codifica delle immagini 7x4 14x8 zz 100

Codifica delle immagini 7x4 14x8 zz La rappresentazione di un immagine mediante la codifica dei pixel viene chiamata codifica bitmap 101

Codifica delle immagini a toni di grigio Con un solo bit per pixel si possono codificare solo due colori (tipicamente bianco e nero) Per codificare più, dobbiamo usare più bit 102

Codifica delle immagini a toni di grigio Con un solo bit per pixel si possono codificare solo due colori (tipicamente bianco e nero) Per codificare più, dobbiamo usare più bit Ad es., tonalità di grigio: per ogni quadratino si stabilisce il livello medio di grigio si codifica ogni livello di grigio (se uso 4 bit 16 livelli di grigio, se uso 8 bit 256 livelli di grigio, se uso k bit 2 k tinte diverse) 103

Codifica delle immagini a colori Immagini a colori: si individua una serie di sfumature di colore differenti ognuna è codificata con un opportuna rappresentazione binaria 104

Codifica delle immagini a colori Immagini a colori: si individua una serie di sfumature di colore differenti ognuna è codificata con un opportuna rappresentazione binaria Due modi di codificare le immagini a colori: true color palette 105

True color Colori come somma di tre colori primari: rosso, verde e blu (Red, Green, Blue: RGB) Monitor e televisori funzionano così 256 livelli ( 8 bit) per ogni canale (colore primario) 3 byte per ogni pixel 2 3*8 colori = 2 24 colori = 16.777.216 colori Colore R G B nero 0 0 0 bianco 255 255 255 rosso 255 0 0 giallo 255 255 0 grigio 127 127 127 106

Palette Tavolozza dei colori (palette): in un immagine indica quali colori possono essere assegnati ad un pixel dà la corrispondenza tra un numero associato a un pixel e il colore reale Ogni immagine ha una propria tavolozza, a meno che sia un immagine true color 107

Pixel e palette Partiamo da un immagine a 256 colori, cioè 8 bit/pixel 108

Pixel e palette Partiamo da un immagine a 256 colori, cioè 8 bit/pixel 109

Codifica dei pixel 32 32 32 21 32 21 21 17 21 21 17 21 21 21 17 21 21 17 32 21 21 33 33 33 110

Indice R G B Codifica dei pixel 32 32 32 21 32 21 21 17 21 21 17 21 21 21 17 21 21 17 32 21 21 33 33 33... 17 112 53 23 21 118 56 57 32 146 64 33 33 149 66 54 111

Occupazione delle immagini a colori Es.: immagine 150 x 200 pixel a 16 colori Occorrono 4 bit per pixel (perché 2 4 =16), quindi occupa 150 * 200 * 4 bit = 120000 bit = 15000 byte (oltre alla palette) Es.: immagine 150 x 200 pixel true color Occorrono 3 byte (24 bit) per pixel, quindi occupa 150 * 200 * 3 byte = 90000 byte 112

Codifica delle immagini a colori Esistono tecniche di compressione delle immagini che consentono di ridurre la dimensione dello spazio occupato Per esempio, una tecnica consiste nel codificare aree dello stesso colore in modo abbreviato 6 * Formati compressi più diffusi sono gif e jpeg Altri formati di codifica sono tiff, bmp, pict, png In generale si può passare da un formato all altro 113

Codifica delle immagini in movimento Codifica di sequenze di immagini (dette fotogrammi o frame) Visto lo spazio elevato richiesto, occorrono tecniche di memorizzazione efficienti: per esempio, sono memorizzate solo le differenze tra un fotogramma e l altro Esistono vari formati (compresi i suoni): mpeg, avi (microsoft), quicktime (apple) È possibile ritoccare i singoli fotogrammi 114

Codifica dei suoni 115

Codifica dei suoni Il suono è uno dei mezzi principali di comunicazione Anche i suoni possono essere codificati in digitale Un suono è un onda di pressione che si ha in presenza di un mezzo (l aria, l acqua) Quando un suono viene rilevato dall orecchio o da un microfono, viene trasformato in uno stimolo o segnale elettrico Durata, intensità e variazione nel tempo della pressione dell'aria sono le quantità fisiche che rendono un suono diverso da ogni altro 116

Codifica dei suoni Sull'asse x viene rappresentato il tempo Sull'asse y viene rappresentata la variazione di pressione corrispondente al suono stesso Si rappresenta quindi l intensità del suono in funzione del tempo ampiezza tempo Tempo e intensità sono quantità analogiche 117

Codifica dei suoni Problema. Passare da rappresentazione analogica a rappresentazione digitale ampiezza tempo 118

Codifica dei suoni Problema. Passare da rappresentazione analogica a rappresentazione digitale Idea. Si effettuano dei campionamenti sull onda (cioè si misura il valore dell onda a intervalli costanti di tempo) ampiezza ampiezza tempo tempo 119

Codifica dei suoni Idea. Si effettuano dei campionamenti sull onda (cioè si misura il valore dell onda a intervalli costanti di tempo) e si codificano in forma digitale le (numeriche) estratte da tali campionamenti ampiezza ampiezza ampiezza tempo tempo tempo 120

Codifica dei suoni Analogamente alle immagini, maggiore è la frequenza dei campionamenti, migliore sarà la precisione con cui il segnale viene memorizzato e la fedeltà all originale ampiezza ampiezza tempo tempo 121

Codifica dei suoni Analogamente alle immagini, maggiore è la frequenza dei campionamenti, migliore sarà la precisione con cui il segnale viene memorizzato e la fedeltà all originale ampiezza ampiezza tempo tempo Campionamento meno fedele Campionamento più fedele 122

Codifica dei suoni Discretizzando esclusivamente sul tempo, abbiamo ancora campioni analogici (l ampiezza è un valore analogico) Occorre discretizzare anche l ampiezza di ogni campione, per poterla esprimere con un numero binario ampiezza livelli di quantizzazione tempo 123

Codifica dei suoni A ogni livello viene assegnata una sequenza binaria (diversa per ognuno). Nell esempio, si noti che i livelli sono etichettati con i numeri in complemento a 2, e non tutte le combinazioni di 4 bit sono visualizzate (e usate). ampiezza livelli di quantizzazione 0101 0100 0011 0010 0001 0000 1111 1110 1101 1100 1011 tempo 124

Codifica dei suoni Ogni campione viene approssimato al livello più vicino, al valore indicato con il cerchio. Ogni campione sarà quindi espresso dal numero binario corrispondente al livello più prossimo. ampiezza livelli di quantizzazione 0101 0100 0011 0010 0001 0000 1111 1110 1101 1100 1011 tempo 125

Codifica dei suoni Il segnale rappresentato con la sequenza 0001 0011 0100 0010 0010 0011 0010 0000 1101 1101 1101 0001 0010 0010 sarà quindi ricostruito con il seguente segnale: ampiezza livelli di quantizzazione 0101 0100 0011 0010 0001 0000 1111 1110 1101 1100 1011 tempo 126

Codifica dei suoni La sequenza dei valori numerici ottenuta dai campioni è quindi digitalizzata. Si ha una discretizzazione in tempo e una sul valore CD musicali: 44100 campionamenti al secondo, 16 bit per campione (-32768, 32767) Diversi formati: mov, wav, mpeg (mp3), avi, midi Formato midi codifica le note e gli strumenti che devono eseguirle: solo musica, non voce Formato mp3 molto diffuso e molto efficiente 127

Esercizi di riepilogo 128

Esercizi 1. Dati 6 bit, quante distinte si possono rappresentare? 2. Quante distinte si possono rappresentare con un byte? 3. Quanti bit si devono utilizzare per rappresentare 20 distinte? 4. Quanti byte occupa la parola letterature scritta in ASCII esteso? 5. Quanti byte occupa la frase l inglese, il francese scritta in ASCII esteso? 6. Quanti byte occupa la parola cinese rappresentata in UNICODE? 129

Risposte 1. Dati 6 bit, quante distinte si possono rappresentare? 2 6 =64 distinte 2. Quante distinte si possono rappresentare con un byte? 1 byte = 8 bit, 2 8 =256 distinte 3. Quanti bit si devono utilizzare per rappresentare 20 distinte? Almeno 5 bit, perché 25=32 20 (4 bit non sono sufficienti, perché 24=16 < 20) 4. Quanti byte occupa la parola letterature scritta in ASCII esteso? 11 (in ASCII esteso, un carattere corrisponde a un byte) 5. Quanti byte occupa la frase l inglese, il francese scritta in ASCII esteso? 22 6. Quanti byte occupa la parola cinese rappresentata in UNICODE? 12 secondo il libro; da 6 a 24 secondo quanto detto a lezione 130

Esercizi 7. Le parole Shakespeare e shakespeare hanno la stessa rappresentazione in ASCII? 8. Le parole città e citta hanno la stessa rappresentazione in ASCII? 9. Quanti byte occupa un suono della durata di 5 secondi campionato a 30 Hz (30 campioni per secondo), in cui ogni campione occupa 6 byte? 10.Un secondo di suono campionato a 512 Hz occupa 1 KB. Quanti valori distinti possono avere i campioni? 11.Un'immagine a 256 colori è formata da 400x400 pixel. Quanto spazio occupa? 131

Risposte 7. Le parole Shakespeare e shakespeare hanno la stessa rappresentazione in ASCII? No 8. Le parole città e citta hanno la stessa rappresentazione in ASCII? No 9. Quanti byte occupa un suono della durata di 5 secondi campionato a 30 Hz (30 campioni per secondo), in cui ogni campione occupa 6 byte? 5 * 30 * 6 = 900 byte 10. Un secondo di suono campionato a 512 Hz occupa 1 KB. Quanti valori distinti possono avere i campioni? 1 KB = 1024 byte; numero di campioni = 1 * 512 = 512; ogni campione contiene 1024/512 = 2 byte; 2 byte = 16 bit; 2 16 valori distinti 11. Un'immagine a 256 colori è formata da 400x400 pixel. Quanto spazio occupa? Ogni pixel richiede un byte (=8 bit, perché 28=256, sufficiente per rappresentare 256 colori); l'immagine ha 400 * 400 = 160 000 pixel; l'immagine occupa 160 000 byte (= 1 280 000 bit) 132

Esercizi 12.Hai ricevuto un messaggio di posta elettronica da un amico. Il messaggio contiene: un testo di 300 caratteri scritto in ASCII, un'immagine di 120x150 pixel con 1024 colori. Quanti byte occupa il messaggio? 13.Un'immagine di 300x400 pixel occupa 15 000 byte. L'immagine è a colori oppure in bianco e nero? 14.Quanto spazio occupa un'immagine animata di 100x100 pixel a 128 colori, formata da 6 frame? 133

Risposte 12. Hai ricevuto un messaggio di posta elettronica da un amico. Il messaggio contiene: un testo di 300 caratteri scritto in ASCII, un'immagine di 120x150 pixel con 1024 colori. Quanti byte occupa il messaggio? Testo: 300 byte. Immagine: ogni pixel richiede 10 bit (perché 2 10 =1024); l'immagine ha 120 * 150 = 18 000 pixel; l'immagine occupa 10 * 18000 = 180 000 bit = 22 500 byte. Testo + immagine: 300 + 22 500 = 22 800 byte 13. Un'immagine di 300x400 pixel occupa 15 000 byte. L'immagine è a colori oppure in bianco e nero? L'immagine ha 300 * 400 = 120 000 pixel e occupa 15 000 * 8 = 120 000 bit. Quindi ad ogni pixel corrisponde un bit, e l'immagine è in bianco e nero 14. Quanto spazio occupa un'immagine animata di 100x100 pixel a 128 colori, formata da 6 frame? Ogni frame ha 100 * 100 = 10 000 pixel; ogni pixel richiede 7 bit (perché 2 7 =128); ogni frame occupa 10 000 * 7 = 70 000 bit; l'immagine animata occupa 70 000 * 6 = 420 000 bit (= 52 500 byte) 134

Esercizi 15. Codificate i seguenti numeri (in codifica binaria non in complemento a due) nella corrispondente rappresentazione decimale: 101 2 1011 2 1101 2 10000001 2 11001100 2 11111111 2 16. Codificate i seguenti numeri nella corrispondente rappresentazione binaria: 8 10 7 10 60 10 281 10 Verificate i risultati convertendoli nella rappresentazione decimale. 17. Dato il numero 862 10 qual è il numero minimo di bit che si devono usare per la sua rappresentazione binaria? 135

Risposte 15. Codificate i seguenti numeri (in codifica binaria non in complemento a due) nella corrispondente rappresentazione decimale: 101 2 = 5 10 1011 2 = 11 10 1101 2 = 13 10 10000001 2 = 129 10 11001100 2 = 204 10 11111111 2 = 255 10 16. Codificate i seguenti numeri nella corrispondente rappresentazione binaria: 8 10 = 1000 2 7 10 = 111 2 60 10 = 111100 2 281 10 = 100011001 2 Verificate i risultati convertendoli nella rappresentazione decimale. 17. Dato il numero 862 10 qual è il numero minimo di bit che si devono usare per la sua rappresentazione binaria? Numero minimo di bit: 10 (862 10 = 1101011110 2 ) 136

Esercizi 18.Fate l'addizione dei numeri 1100 2 e 1101 2 nella maniera seguente: codificate i numeri 1100 2 e 1101 2 nella rappresentazione decimale, fate l'addizione dei numeri in base 10 ottenuti, e poi codificate la somma ottenuta nella rappresentazione binaria. 19.Ripetete la domanda precedente usando i numeri 1001 2 e 1101 2. 20.Codificate i seguenti numeri rappresentati in complemento a due nella corrispondente rappresentazione decimale: 111100 2 000100 2 100011 2 101010 2 010101 2 111111 2 137

Risposte 18. Fate l'addizione dei numeri 1100 2 e 1101 2 nella maniera seguente: codificate i numeri 1100 2 e 1101 2 nella rappresentazione decimale, fate l'addizione dei numeri in base 10 ottenuti, e poi codificate la somma ottenuta nella rappresentazione binaria. 1100 2 + 1101 2 = 11001 2 (1100 2 = 12 10, 1101 2 = 13 10, 25 10 = 11001 2 ) 19. Ripetete la domanda precedente usando i numeri 10012 e 11012. 1001 2 + 1101 2 = 10110 2 (1001 2 = 9 10, 1101 2 = 13 10, 22 10 = 10110 2 ) 20. Codificate i seguenti numeri rappresentati in complemento a due nella corrispondente rappresentazione decimale: 111100 2 = -4 10 000100 2 = 4 10 100011 2 = -29 10 101010 2 = -22 10 010101 2 = 21 10 111111 2 = -1 10 138