CODIFICA DELLE INFORMAZIONI
Argomenti Sistemi di numerazione conversioni tra i sistemi decimale, binario ed esadecimale Codifica dei numeri interi senza segno codifica binaria, codifica BCD Codifica dei numeri interi con segno modulo e segno, complemento a due, condizioni di overflow Codifica dei numeri frazionari virgla fissa e virgola mobile, standard IEEE-754 Codifica dei colori e dell immagini formato RGB, compressione lossy e lossless Codifica dei caratteri ASCII a 7 bit, codiifiche ASCII estese, Unicode (UTF-32,UTF-6,UTF-8) Codifica dei suoni 2
Codifica delle informazioni Le memorie dei computer sono in grado di memorizzare sequenze di due soli simboli, che chiamiamo e e sono dette cifre binarie o bit (binary digit) Vogliamo memorizzare informazioni varie: numeri, lettere, immagini, suoni, pagine web, programmi Ci serve un modo per rappresentare tutte queste informazioni come sequenze di e Dobbiamo stabilire una codifica dei dati Lo stesso insieme di simboli (es. alfabeto latino) può essere rappresentato usando diverse codifiche! 3
Codifica dei numeri interi senza segno Interi senza segno = interi maggiori o uguali a Un modo naturale per codificare gli interi senza segno è utilizzare la loro rappresentazione in base due i numeri così rappresentati si dicono codificati in binario Nota: la codifica binaria non è l'unica codifica per numeri interi usata in informatica, ma è sicuramente la più utilizzata negli attuali computer Un'alternativa è la codifica BCD (binary-coded decimal) che vedremo più avanti 4
Sistemi di numerazione Tutti sappiamo rappresentare i numeri nel sistema di numerazione in base 2 3 4 5 6 7 8 9 i simboli del sistema decimale (cifre decimali) Pechè usiamo la base? 5
Esempio: contiamo in base 4 Se avessimo 2 dita per mano, conteremmo in base 4?..avremmo a disposizione solo 4 simboli: 2 3 2 3 2 3 2 2 22 23 3 2() = 3(4) 6
Notazione della base 2() = 3(4) Attenzione: 2() e 3(4) sono due modi diversi di rappresentare la stessa quantità ( stesso numero di palline!) L'indicazione della base è omessa quando la base è oppure se la base è chiara dal contesto 7
Esercizio Esprimere tutti i numeri da a nelle basi 3, 4, 5, 6, 7 base base 3 base 4 base 5 base 6 base 7 2 2 2 2 2 2 3 3 3 3 3 4 4 4 4 5 2 5 5 6 2 2 6 7 2 3 2 8 22 2 3 2 9 3 2 4 3 2 3 22 2 4 3 8
Sistema di numerazione posizionale in base Sistema di numerazione posizionale = sistema in cui il valore associato a una cifra dipende dalla posizione che essa occupa nella rappresentazione del numero. Esempio: 595 = 5 2 + 9 + 5 posizione (cifra meno significativa) base posizione posizione 2 (cifra più significativa) 9
Numerazione in base 2 Il sistema di numerazione binario funziona come quello in base, ma abbiamo a disposizione due soli simboli! cifre binarie (bit) Esempio 22 2 2 (2) = 22+ 2+ 2 = 5 ()
Numerazione in base 2 DEC 2 3 4 5 BIN DEC BIN DEC BIN 6 7 8 9 2 3 4 5 6......
Conversione da base a base N Per ottenere la rappresentazione in base N di un numero espresso in base si utilizza un algoritmo basato su divisioni successive per la base N. Ad esempio, per convertire un numero da base a base 2 occorre eseguire una serie di divisioni per 2 annotando quozienti e resti (vedi esempio) Esempio: ottenere la rappresentazione in base 2 del numero 44(). 44 () =?... (2) 2
Conversione da base a base 2 44 () =... (2) 44 22 5 2 quozienti Il procedimento termina quanto si ottiene nella colonna dei quozienti (e quindi come ultimo resto). Attenzione a ricopiare i resti nell'ordine giusto: l'ultimo resto corrisponde alla cifra più significativa!!! resti 3
Conversioni da sistema binario a decimale Per passare dalla rappresentazione in base 2 a quella in base, si moltiplica ogni cifra binaria per la potenza di due corrispondente alla posizione della cifra Alla cifra meno significativa corrisponde la potenza 2, che vale. Esempio: convertire (2) in base 25 24 23 22 2 2 (2) = 25+ 24+ 23+ 22+ 2+ 2 = 32 + + 8 + + + = 4 () 4
Trucchi e scorciatoie in binario.. I numeri pari finiscono per e i dispari per Aggiungere uno zero a destra equivale a moltiplicare per 2: = 3 = 6 Un seguito da N zeri corrisponde a 2N: = 23 = 2 = 24 Una sequenza di N consecutivi corrisponde a 2N-: = 23- = 7 =24- = 5 5
Potenze di due e! r e p a Da s 2 = 2 = 2 22 = 4 23 = 8 24 = 6 25 = 32 26 = 64 27 = 28 28 = 256 29 = 52 2 = 24 6
Unità di misura byte = 8 bit Kilo Mega Giga Tera KB MB GB TB Esercizio: = = = = nibble = 4 bit 24 byte 24 KB 24 MB 24 GB = = = = 2 byte 22 byte 23 byte 24 byte circa mille byte circa milione di byte circa miliardo di byte a quanti KB corrispodono 26 byte? Soluzione: 26 = 26 2 = 64 KB 7
Range di valori rappresentabili Range = intervallo Poichè N bit producono 2N diverse combinazioni, essi consentono di codificare al più 2N valori diversi (numeri, lettere, colori,...). Esempio: configurazioni di 2 bit --> Con N bit è possibile rappresentare, tramite la codifica binaria, tutti i numeri interi senza segno da a 2N- Con byte (8 bit) è possibile rappresentare tutti i numeri interi da a 255 (256 valori) Con 2 byte (6 bit) il range si estende da a 26- = 65535 (26 valori diversi) 8
Esercizi Es Convertire i seguenti numeri da base a base 2: Es 2 Convertire i seguenti numeri da base 2 a base : a) 8 b) 25 c) 7 d) 8 e) 95 f) 38 m) n) o) p) q) r) g) 63 h) 26 i) 47 j) 256 k) 248 l) 53 s) t) u) v) w) x) SOLUZIONI: a) b) c) d) e) f) g) h) i) j) k) j) m) 2 n) 2 o) 63 p) 56 q) 43 r) 256 s) 7 t) 23 u) 6 v) 5 w) 3 x) 32 9
Esercizi risolti a) 8() =..?.. (2) Procedimento: 5 25 2 6 mi fermo 3 quando il quoziente è zero Risultato: 8() = (2) diviso 2 fa 5 resto 5 diviso 2 fa 25 resto 25 diviso 2 fa 2 resto ricopio a partire dal basso ( cifra più significativa ) 2
Aritmetica binaria Le operazioni in colonna fra numeri binari seguono lo stesso algoritmo già noto per il sistema decimale! Per la somma in colonna basta ricordare che: + + + + + + = = = = = con riporto di con riporto di 2
Aritmetica binaria Esempio riporti + riporto in uscita (Carry Out ) = 25 + 22 = 425 28 +27 +25 +23 +2 = 256 +28 +32 +8 + = 425 22
Un circuito sommatore a 4 bit B3 A3 Carry Out Out3 B2 A2 B A Out2 Out B A Out 23
Codifica BCD La codifica BCD (binary-coded decimal) è un' alternativa alla codifica binaria vista in precedenza Nella versione packed BCD, prevede di rappresentare ogni cifra decimale con 4 bit Esempio: rappresentare il numero 254 in formato packed BCD e in formato binario 2 5 4 Codifica BCD 2 byte Codifica binaria byte 24
BCD vs Binary Nella codifica BCD solo delle 6 possibili configurazioni di 4 bit sono utilizzate A parità di bit utilizzati, quindi, la codifica binaria consente di rappresentare un range più ampio Codifica Range Binaria (2 byte)... 65535 BCD (2 byte)... 9999 BCD semplifica la visualizzazione dei numeri su display 25
Esercizi Es. Codifica i seguenti numeri in formato BCD a) 96 [ ] b) [ ] c) 35 [ ] 26
Il sistema esadecimale (HEX) Il sistema di numerazione in base 6 è detto sistema esadecimale (hexadecimal number system) Usa 6 simboli diversi (cifre esadecimali): 2 3 4 5 6 7 8 9 A B C D E F 2 3 4 5 La La La La La La cifra cifra cifra cifra cifra cifra A rappresenta il numero decimale B rappresenta il numero decimale C rappresenta il numero decimale 2 D rappresenta il numero decimale 3 E rappresenta il numero decimale 4 F rappresenta il numero decimale 5 27
Conversione da Hex a Dec Per passare da esadecimale a binario, si moltiplica il valore di ogni cifra per la potenza di 6 corrispondete Esempio A37E(h)? =... () 4 6 + 7 6 + 3 62 + A B C 2 D 3 E 4 F 5 63 = 4854 28
Decimale Binario Esadecimale Dec Bin Hex Dec Bin Hex Dec Bin Hex 6 32 2 7 33 2 2 2 8 2........ 3 3 9 3 48 3 4 4 2 4......... 5 5 2 5 64 4 6 6 22 6 65 4 7 7 23 7 66 42 8 8 24 8......... 9 9 25 9 26 7E A 26 A 27 7F B 27 B 28 8 2 C 28 C......... 3 D 29 D 253 FD 4 E 3 E 254 FE 5 F 3 F 255 FF 29
Notazioni Per indicare che un numero è espresso in base 6 si fa seguire il numero dal suffisso h In molti linguaggi di programmazione (C/C++, Java,..) è possibile far precedere il numero dal prefisso x Esempio: il numero 42(6) si può indicare come 42h o x42 Nota: 42h è diverso da 42!!! 42h = 4*6 + 2 = 64 + 2 = 66 3
Perchè gli informatici usano l'hex? BIN HEX x x x x 2 4 bit (nibble) 4 4 5 6 7 8 9 A B C D E F x cifra esadecimale Ad ogni possibile configurazione di 4 bit corrisponde esattamente cifra esadecimale Con due cifre esadecimali si rappresenta in modo compatto il contenutodi un byte di memoria: 6B 3
Immagini della memoria L'esadecimale è spesso usato per rappresentare il contenuto di una memoria (memory dump) cella di memoria di un byte, contenente il valore 8B Il cotenuto di questo byte è E8 = E 8 32
Perchè gli informatici usano l'hex? la notazione esadecimale è più compatta di quella decimale e binaria (servono meno cifre per rappresentare lo stesso numero) usando una sola cifra esadecimale si rappresentano tutte le 6 possibili configurazioni di 4 bit (mezzo byte ), ovvero i valori decimali da a 5 usando solo due cifre esadecimali si rappresentano tutte le 256 possibili configurazioni di 8 bit (un byte) ovvero i valori da a 255 poichè 6 è una potenza di 2, le conversioni da base 6 a base 2 e viceversa sono estremamente semplici 33
Aritmetica in esadicmale L'addizione segue lo stesso algoritmo già noto nel sistema decimale! Esempi: 9+=A A+=B A+2=C C+3=F E + 5 = 3h 34
Aritmetica esadecimale Esempio riporti A 2 B + C F 3 = B D E 35
Osservazioni Aggiungere uno zero alla destra di un numero esadecimale equivale a moltiplicare per 6() Esempi: Ah = Ah = *6 Ah = *6*6 I numeri che terminano per zero sono quindi multipli di 6 36
Conversioni BIN HEX Per convertire da binario a esadecimale si raggruppano le cifre binarie a gruppi di 4 partendo da destra e si sostituisce ogni gruppo con la cifra esadecimale corrispondente (2) 3 2 = 32E (h) E Per convertire da hex a bin si sostiuisce ogni cifra esadecimale con la sequenza di 4 bit corrispondente. 37
Esercizi Es Convertire i seguenti numeri da base 2 a base 6: Es 2 Convertire i seguenti numeri da base 6 a base 2 a) b) c) d) e) f) g) A3 h) FA i) BE j) ABC k) DC l) FFE Es 3 Convertire i seguenti numeri da base 6 a base Es 5 Eseguire le seguenti somme m) A3 n) FA o) BE p) ABC q) DC r) FFE s) t) u) v) w) x) A8h + Eh + F3h + FFFFh ABh 55h + 32h 2h 7h + + F4h 4Ch Soluzioni: a)b7 b)d9 c)ff d)2a e)75 f)86 g) h) i) j) k) l) m)63 n)25 o)9 p)2748 q)3356 r)494 s) DAh t) h u)ah v) h w) AFh x) Ah 38