Rappresentazione e codifica de informazione
Premessa I cacoatore è una macchina digitae - I suo inguaggio è composto da due soi simboi Gi esseri umani sono abituati a comunicare utizzando più simboi Come è possibie tradurre e informazioni che ci scambiamo abituamente in informazioni comprensibii ad un cacoatore?
Tipi di Informazioni... Cifre Caratteri Numeri Immagini Suoni Video? 1001001000111110...
Un Mondo di Numeri Quasiasi tipo di informazione può essere rappresentata in forma numerica - Testo: sequenza di caratteri - Ad ogni carattere è possibie associare un numero - Un testo è quindi una sequenza di numeri
Tabea ASCII (128 simboi)
Tabea ASCII Estesa (256 simboi)
Un Mondo di Numeri Quasiasi tipo di informazione può essere rappresentata in forma numerica - Immagine: sequenza di pixe - Pixe: 3 componenti (R, G, B) - Componente: un vaore di intensità - Intensità: un numero (0..255) - Una immagine è quindi una sequenza di numeri
Pixe e RGB
Un Mondo di Numeri Quasiasi tipo di informazione può essere rappresentata in forma numerica - Video: sequenza di immagini - Ma una immagine è quindi una sequenza di numeri -...quindi anche un video è una sequenza di numeri
Un Mondo di Numeri Quasiasi tipo di informazione può essere rappresentata in forma numerica - Suono: variazione dea pressione in un punto - Può essere assimiata ad una funzione matematica ne dominio de tempo -...quindi anche un suono è una sequenza di numeri
Rappresentazioni Numeriche Non posizionai Posizionai
Rappresentazioni Numeriche Non Posizionai I vaore di ogni cifra non dipende daa posizione dea cifra - Es., i numeri romani XIII, I vae una unità indipendente daa sua posizione
Rappresentazioni Numeriche Posizionai I vaore di ogni cifra dipende daa posizione dea cifra 123-1 vae 1 centinaio (100) - 2 vae 2 decine (20) - 3 vae 3 unità
Scomposizione di un Numero Decimae 123 = 100 + 20 + 3 Noi utiizziamo abituamente i sistema decimae - 10 cifre (0, 1, 2,, 9) per comporre tutti i numeri La base di un numero decimae è 10 123 10 = 1 10 2 + 2 10 1 + 3 10 0
Numero Binario Un numero binario è un numero in base 2 Un numero binario utiizza due simboi - Tipicamente 0 e 1 10110 2 = 1 2 2 4 + 0 2 2 3 + 1 2 2 2 + 1 2 2 1 + 0 2 2 0-1 e 0 sono simboi - Convenzionamente 1 2 vae 1 10, 0 2 vae 0 10 Quindi - 10110 2 = 22 10
Numero Ottae Un numero ottae è un numero in base 8 Un numero ottae utiizza 8 simboi - 0, 1, 2, 3, 4, 5, 6, 7 357 8 = 3 8 8 2 + 5 8 8 1 + 7 8 8 0-3, 5 e 7 sono simboi - Convenzionamente 3 8 vae 3 10, 5 8 vae 5 10, 7 8 vae 7 10 Quindi - 357 8 = 239 10
Numero Esadecimae Un numero esadecimae è un numero in base 16 Un numero esadecimae utiizza 16 simboi - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F 2AD 16 = 2 16 16 2 + A 16 16 1 + D 16 16 0 - Convenzionamente 0 16 vae 0 10, 1 16 vae 1 10,, 9 16 vae 9 10, A 16 vae 10 10, B 16 vae 11 10, C 16 vae 12 10, D 16 vae 13 10, E 16 vae 14 10, F 16 vae 15 10 Quindi - 2AD 16 = 685 10
Configurazioni Con 1 cifra binaria posso rappresentare 2 stati - 0, 1 Con 2 cifre binarie posso rappresentare 4 stati - 00, 01, 10, 11 Con 3 cifre binarie posso rappresentare 8 stati - 000, 001, 010, 011, 100, 101, 110, 111 Con n cifre binarie?
Configurazioni Con n cifre binarie posso rappresentare 2 n stati Esempio - Con 5 bit è possibie rappresentare 32 diverse configurazioni
Configurazioni Sappiamo convertire un numero espresso in una quasiasi base in un numero decimae...ma i nostro obiettivo era fare i viceversa!
Decimae a Binario Basta esprimere i numero decimae come una somma di potenze de due - Tutte e potenze devono essere diverse tra oro Es. 18 10 = 16 + 2 = 2 4 + 2 1 - È presente a cifra di peso 4 e a cifra di peso 1 quindi - Non è presenta a cifra di peso 3, di peso 2 e di peso 0-18 10 = 10010 2 Es. 137 10 = 128 + 8 + 1 = 2 7 + 2 3 + 2 0-137 10 = 10001001 2
Decimae a Binario Aternativamente si cacoano i resti dee divisioni per a base di destinazione (in questo caso 2)
Decimae a Base Generica Per convertire un numero decimae in un numero in base b basta utiizzare i metodo dee divisioni successive - In questo caso si divide per b
Ottae a Binario Un simboo ottae è codificato da 3 simboi binari (2 3 ) Quindi, per convertire un numero ottae a binario, basta convertire e singoe cifre de numero ottae utiizzando per ognuna di esse 3 bit
Ottae a Binario 521 8 = 101010001 2 101 010 001
Esadecimae a Binario Un simboo esadecimae è codificato da 4 simboi binari (2 4 ) Quindi, per convertire un numero esadecimae a binario, basta convertire e singoe cifre de numero esadecimae utiizzando per ognuna di esse 4 bit
Esadecimae a Binario 3AC 16 = 001110101100 2 001110101100
Numeri Interi Reativi Rappresentazione in Moduo e Segno (MS) Rappresentazione in Compemento a Due (C2)
Moduo e Segno I primo bit di un numero binario rappresentato in MS indica i segno de numero - 1 segno negativo - 0 segno positivo Es. 11011 2 è un numero rappresentato in MS in decimae vae -11 10 Es. 01011 2 è un numero rappresentato in MS in decimae vae 11 10
Compemento a Due I primo bit di un numero binario rappresentato in C2 viene pesato con segno negativo Es. 11101 2 è rappresentato in C2, in decimae vae -2 4 +2 3 +2 2 +2 0 = -3 10
Operatore de Compemento a Due L'appicazione de'operatore C2 ad un numero binario opera come segue - I numero viene copiato simboo per simboo da destra verso sinistra fino a primo 1 - Tae 1 viene anch'esso copiato - Ma da questo momento in poi, i restanti simboi vengono copiati compementati (cioè gi 0 diventano 1 e gi 1 diventano 0) Es. I C2 di 01101000 è 10011000
Proprietà de C2 L'appicazione de C2 su un numero binario rappresentato in C2 ne inverte i segno Es. 01101000 2 vae 104 10, appicando i C2 si ottiene 10011000 2 che vae -104 10
Intervao di Variazione Con n cifre binarie a disposizione, i più piccoo ed i più grande numero rappresentabie è - Binario Naturae: Min: 0 Max: 2 n -1 - Moduo e Segno: Min: -(2 n-1-1) Max: 2 n-1-1 - Compemento a Due: Min: -2 n-1 Max: 2 n-1-1 Esempio, per n=4 - Binario Naturae: Min: 0 Max: 15 (16 vaori) - Moduo e Segno: Min: -7 Max: 7 (15 vaori) Un vaore in meno a causa dea doppia rappresentazione deo 0 - Compemento a Due: Min: -8 Max: 7 (16 vaori)
Bit, Byte, KByte,... Bit = soo due stati, 0 oppure 1 Byte = 8 bit, quindi 2 8 = 256 stati KioByte [KB] = 2 10 Byte = 1024 Byte ~ 10 3 Byte MegaByte [MB] = 2 20 Byte ~ 10 6 Byte GigaByte [GB] = 2 30 Byte ~ 10 9 Byte TeraByte [TB] = 2 40 Byte ~ 10 12 Byte PetaByte [PB] = 2 50 Byte ~ 10 15 Byte ExaByte [EB] = 2 60 Byte ~ 10 18 Byte
Numeri Frazionari Due rappresentazioni - Virgoa fissa (fixed point) - Virgoa mobie (foating point)
Virgoa Fissa Si stabiisce una posizione fissa in cui mettere a virgoa che separa a parte intera da quea decimae Si assume che - Le cifre a SX dea virgoa hanno posizione crescente a partire da 0 - Le cifre a DX dea virgoa hanno posizione decrescente a partire da -1
Virgoa Fissa Sia i numero binario di 1 + I + D bit s b I 1 b I 2 b 1 b 0,b 1 b 2 b D I suo vaore decimae è I 1 ( 1) s ( i= 0 D b i 2 i + d= 1 b d 2 d )
Virgoa Fissa 1101,1011 2 = -(2 2 + 2 0 + 2-1 + 2-3 + 2-4 )= = -(5 + 0.6875) = = -5.6875 10
Virgoa Fissa Rappresentare i numero 0.6 in binario in virgoa fissa utiizzando 5 bit 0.6 2 = 1.2 parte intera 1 0.2 2 = 0.4 parte intera 0 0.4 2 = 0.8 parte intera 0 0.8 2 = 1.6 parte intera 1 0.6 2 = 1.2 parte intera 1 0,6 10 =,10011 2 Errore 0.6 (2-1 +2-4 +2-5 ) = 0.00625
Virgoa Fissa Rappresentare i numero 0.6 in binario in virgoa fissa utiizzando 8 bit 0.6 2 = 1.2 parte intera 1 0.2 2 = 0.4 parte intera 0 0.4 2 = 0.8 parte intera 0 0.8 2 = 1.6 parte intera 1 0.6 2 = 1.2 parte intera 1 0.2 2 = 0.4 parte intera 0 0.4 2 = 0.8 parte intera 0 0.8 2 = 1.6 parte intera 1 0,6 10 =,10011001 2 Errore 0.6 (2-1 +2-4 +2-5 +2-8 ) = 0.00234
Virgoa Fissa A'aumentare de numero di bit aumenta a precisione - Cioè diminuisce 'errore A meno che i numero non sia approssimabie in maniera perfetta 0.625 2 = 1.25 parte intera 1 0.25 2 = 0.5 parte intera 0 0.5 2 = 1.0 parte intera 1 0.0 2 = 0.0 parte intera 0 0.0 2 = 0.0 parte intera 0...... 0.0 2 = 0.0 parte intera 0
Virgoa Fissa Per rappresentare un numero decimae con a virgoa in binario in virgoa fissa con N bit occorre - Rappresentare a parte intera (es., metodo dee divisioni successive) con I bit - Rappresentare a parte decimae (es., metodo dee motipicazioni successive) con D bit - Rappresentare i segno con 1 bit N = I + D + 1
Virgoa Mobie Deriva daa rappresentazione scientifica (o standard) I numero è i prodotto di due parti - Un fattore di scaa (potenza de 10) - Parte frazionaria Quindi esistono più rappresentazioni deo stesso numero - 7,824 10 3-78,24 10 2-782,4 10 1-78240 10-1
Virgoa Mobie Si utiizza a rappresentazione normaizzata - 0,7824 10 4 Rappresentazione normaizzata - La parte frazionaria è minore di 1 - La cifra più significativa è diversa da 0 0,007824 10 6 viene quindi riscritto come 0,7824 10 4
Virgoa Mobie La rappresentazione in virgoa mobie è a rappresentazione scientifica normaizzata con utiizzo de sistema binario - Dunque i fattore di scaa è una potenza de 2 La parte frazionaria è detta mantissa L'esponente de 2 è detto caratteristica (o esponente) ±mantissa 2 ±esponente
Virgoa Mobie La normaizzazione evita di dover memorizzare a posizione dea virgoa Per evitare 'uso de segno ne'esponente, può essere rappresentato con un eccesso - Es. 7 bit per esponente e eccesso 64 0 63 considerati negativi 64 considerato 0 65 127 considerati positivi esponente effettivo = esponente - 64
Virgoa Mobie Singoa precisione segno esponente mantissa 0 1 2 3 4 5 6 7 8 9 10 11 12 31 Doppia precisione segno esponente mantissa 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14... 63
Precisione
Virgoa Fissa vs Virgia Mobie Intervao di vaori più ampio nea rappresentazione in virgoa mobie Errore = Numero reae Numero rappresentato - Virgoa fissa: errore costante - Virgoa mobie: errore variabie Piccoo per numeri piccoi Grande per numeri grandi
Scorrimento Logico a Destra Lo scorrimento ogico a destra di n bit fa scorrere a destra i bit de numero di n posizioni - Gi n bit più significativi de numero ottenuto sono fissati a zero - Gi n bit meno significativi de numero di partenza non vengono considerati
Scorrimento Logico a Destra Scorrimento ogico a destra di 2 bit I due bit meno significativi si perdono 0 0 I due bit più significativi si azzerano
Osservazione Quando si scorre a destra i numero di 1 bit - I bit di posizione i che originariamente pesava 2 i ora pesa 2 i-1 I peso di ogni bit è dimezzato - I numero è dimezzato Generaizzando - Lo scorrimento ogico a destra di n bit equivae a dividere (divisione intera) i numero per 2 n
Esempio Si considerei i numero rappresentato in binario naturae 1010 2 cioè 10 10 Scorrimento ogico a destra di 1 bit - 0101 2 cioè 5 10 Infatti 10 : 2 = 5
Scorrimento Aritmetico a Destra L'osservazione secondo cui o scorrimento ogico a destra equivae e dividere i numero per una potenza de due vae soo per i numeri positivi Se i numero è rappresentato in compemento a due è opportuno utiizzare o scorrimento aritmetico
Scorrimento Aritmetico a Destra Lo scorrimento aritmetico a destra di n bit fa scorrere a destra i bit de numero di n posizioni - Gi n bit più significativi de numero ottenuto assumono o stesso vaore de bit più significativo de numero di partenza - Gi n bit meno significativi de numero di partenza non vengono considerati
Scorrimento Aritmetico a Destra Scorrimento aritmetico a destra di 2 bit I due bit meno significativi si perdono I due bit più significativi Sono uguai a bit più significativo de numero di partenza