360 likes | 618 Vues
4. Codifica binaria dell’informazione. Ing. Simona Colucci. Codifica binaria dell’informazione. Tutte le informazioni vanno tradotte in bit(organizzati poi in byte o parole ): Numeri naturali Numeri interi(con segno) Numeri frazionari Numeri reali Caratteri Immagini
E N D
4. Codifica binaria dell’informazione Ing. Simona Colucci Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
Codifica binaria dell’informazione • Tutte le informazioni vanno tradotte in bit(organizzati poi in byte o parole): • Numeri naturali • Numeri interi(con segno) • Numeri frazionari • Numeri reali • Caratteri • Immagini • Nell’interazione con il calcolatore la codifica in binario e la decodifica in formato leggibile sono trasparenti all’utente Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
Numeri naturali: Sistemi di numerazione • Un sistema di numerazione è composto da: • Insieme finito di simboli o cifre • Regole che permettono di rappresentare i numeri naturali • Classificazione • Sistemi additivi (Es. sistema romano parzialmente): • Ogni cifra assume un valore prefissato • Il numero si ottiene addizionando le cifre che lo compongono • Impossibilità di rappresentare numeri molto grandi e difficoltà di esecuzione delle operazioni matematiche • Sistemi posizionali (Es. sistema decimale): • Le cifre acquistano un peso diverso a seconda della posizione che occupano • Un numero generico di m cifre è rappresentato in base p dalla sequenza: an, an-1, an-2,..., a0 • Compattezza di rappresentazione anche per numeri molto grandi e facilità di esecuzione delle operazioni an : cifra più significativa a0 : cifra meno significativa n = m-1 ai {0, 1, ..., p-1} Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
Sistemi posizionali:Rappresentazione in base p Numero naturale N, composto da m cifre, in base p: • Rappresentazione • Spazio di Rappresentazione: numeri nell’intervallo discreto [0 , pm - 1] Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
Il sistema decimale: rappresentazione in base 10 • Sistema posizionale • Esempio: 123 = 100 +20 +3 • Base: p = 10 • Insieme di simboli: ai {0,1,2,3,4,5,6,7,8,9} • Numero naturale N di m cifre: • Rappresentazione: • N10 = an·10n+an- 1·10n-1+…+a0·100 n=m-1 • Esempio, con m=3: 58710 =5·102+8·101+7·100 • Spazio di rappresentazione: intervallo discreto [0, 10m-1] Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
Sistema binario:Rappresentazione in base due • Sistema posizionale • Base binaria: p=2 • Insieme di simboli: ai {0, 1} • Simboli chiamati bit (binary digit) • Otto bit chiamati byte • Numero naturale N di m cifre: • Rappresentazione: • N2 = an·2n+ an-1·2n-1+…+a0·20 n=m-1 • Esempio, con m=5: 110112 = (1·24+1·23+0·22+1·21+1·20)10 = 2710 • Spazio di rappresentazione: • intervallo discreto [0 , 2m -1] • Esempio con m=8: [000000002 , 111111112],ovvero: [010 , 25510] Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
Il sistema binario: unità di misura • kilobyte(Kb) = 210 byte = 1024 byte • megabyte(Mb) = 220 byte = 1048576 byte • gigabyte(Gb) = 230 byte = 1073741824 byte • terabyte(Tb) = 240 byte = 1099511627776 byte Le approssimazioni a potenze di 10: • sono accettabili solo per i kilobyte: 1024 ~1000 • sono inaccettabili per 104 ,105 ,106 • le lettere maiuscolenel simbolo indicano che non si tratta delle potenze di 10 del sistema internazionale Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
Basi ottale ed esadecimale • Rappresentazione in base 8: • Base ottale: p=8; • Insieme di simboli ai {0, 1, 2, 3, 4, 5, 6, 7} • Numero N di m cifre: • Rappresentazione: N8 = (an·8n+an-1·8n-1+…+ a0·80)10 n=m-1 Es. 2348 = (2·82+3·81+4·80)10 = 15610 • Spazio di rappresentazione: [0, 8m-1] • Rappresentazione in base 16: • Base esadecimale: p=16; • Insieme di simboli ai {0, 1, 2, …, 9, A, B, C, D, E, F} • Notare: “11” al posto di “B” e “15” al posto di “F”, i loro equivalenti in base dieci • Numero N di m cifre: • Rappresentazione: N16 = (an·16n+an-1·16n-1+…+ a0·160)10 n=m-1 Esempio: B7F16 = (11·162+7·161+15·160)10 = 294310 • Spazio di rappresentazione: [0, 16m-1] Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
Conversioni di base • Per convertire da base p a base 10: • Esempio: 110112 = (1·24+1·23+0·22+1·21+1·20)10 = 2710 • Per convertire da base dieci a base due: • Metodo delle divisioni successive: esempio 331:2 = 165 con resto di 1 165:2 = 82 con resto di 1 82:2 = 41 con resto di 0 41:2 = 20 con resto di 1 (331)10=(101001011)2 20:2 = 10 con resto di 0 10:2 = 5 con resto di 0 5:2 = 2 con resto di 1 2:2 = 1 con resto di 0 1:2 = 0 con resto di 1 Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
Conversioni di base • Le basi ottale ed esadecimale sono di interesse informatico per la facilità di conversione, con il metodo”per parti”: • Da base 2 a base 8: si converte a gruppi di tre bit, traducendo ciascuna tripla nella corrispondente cifra ottale (001010110111)2=(1267)8 • Da base 2 a base 16: si converte a gruppi di quattro bit, traducendo ciascuna quadrupla nella corrispondente cifra esadecimale (001010110111)2=(2B7)16 • La base ottale ed esadecimale consentono una grande sintesi di rappresentazione Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
Somma • Le cifre sono 0 e 1 ed il riporto può essere solo 1 Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
Esempio di somma e carry • Esempio: 1 riporto0101 +(510)1001 =(910)------1110(1410) 111 riporti1111 +(1510)1010 =(1010)-------carry 11001(2510 se uso 5 bit; 910 se considero 4 bit: errato) Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
Numeri interi • Includono anche i numeri negativi • Rappresentati tramite il segno ed il valore del numero • Codifica binaria secondo uno delle due modalità seguenti: • Rappresentazione in modulo e segno • Rappresentazione in complemento a due Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
Num. intero, base 10 Num. intero, base due, modulo e segno –3 111 –2 110 –1 101 –0 100 +0 000 +1 001 +2 010 +3 011 Modulo e segno • In un numero di m bit il primo bit è utilizzato per memorizzare il segno: • “1” numero negativo • “0” numero positivo • Spazio di rappresentazione: tra -(2m-1-1) e (2m-1-1) • Fenomeno dello zero positivo e negativo Esempio m=3 Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
Complemento a due (CPL2) • Usando m bit: (-N)CPL2 = (2m - N10)2 • Spazio di rappresentazione: intervallo discreto [-2m-1 , 2m-1 - 1] • Asimmetria tra negativi e positivi • Esempio (m=8): [-128, +127], perché -27 = -128 e 27 - 1 = +127 • Tutti i numeri negativi cominciano con il bit più significativo posto a “1”, mentre tutti i positivi e lo zero iniziano con uno “0” Esempio m=3 (-N)CPL2 =(23-N10)2 Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
Complemento a due (CPL2) • Metodo alternativo per ottenere (-N)CPL2 • Complementare i bit della rappresentazione binaria del modulo N(cambiare gli 1 in 0 e viceversa) • Sommare 1 al risultato ottenuto Esempio: -N=-3 N=(3)10=(011)2 complementoad 1 100 complemento a 2 101 Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
Somma e sottrazione in CPL2 • Somma: come per i naturali • Sottrazione: N1- N2 = N1 + (-N2)CPL2 • Carry: • Il carry finale non viene considerato! • Overflow: • Se, sommando due interi di m bit dotati di segno concorde, ottengo un risultato di segno discorde (sempre considerando m bit), allora si ha un overflow (il risultato non è codificabile su m bit) e l’operazione è errata • L’overflow non può verificarsi se gli operandi sono di segno discorde Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
Somma e sottrazione in CPL2 Esempi: m=7 spazio di rappresentazione [-64, +63] +5 00101 +8 01000 +13 01101 +5 00101 -8 11000 -3 11101 -5 11011 +8 01000 +3 (1)00011 -63 1000001 -8 1111000 -71 [1](1)0111001 RIPORTO OVERFLOW RIPORTO • Perché ignorare il riporto finale in CPL2 ad m bit? • Esempio: base=10 • 10180-9878=302= • = 10180 -9878 +10000-10000= • = 10180+(10000-9878)-10000= (10000-9878)-è il complemento a 10 del sottraendo: (9878)CPL10 • = 10180+122-10000= si addiziona al minuendo il complemento a 10 del sottraendo • = 10302-10000= questa sottrazione equivale a trascurare la cifra piu significativa • = 302 Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
Numeri frazionari Rappresentazione: • Relativa alla parte frazionaria • Ottenuta tramite la formula Spazio di rappresentazione: • Per un numero di n cifre in base p, posso rappresentare numeri nell’intervallo continuo: [0 , 1-p-n] Errore di approssimazione: • minore di p-n • Esempi con n=3: • base 10: Rappresentazione: (0,587)10= (5·10-1+8·10-2+7·10-3) • Spazio di rapp.: [0, 1-10-3] = [0, 0.999] • Errore : minore di 0.001 • base 2: Rappresentazione:(0,101)2 =(1·2-1+0·2-2+1·2-3)10= (0,625)10 • Spazio di rapp.: [0, 1-2-3] • Errore : minore di 2-3 Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
Conversioni di base parte frazionaria • Da base 2 a base 10: • Secondo la formula vista prima • Da base 10 a base 2: • Si moltiplica progressivamente per 2 la parte frazionaria • Si prendono le parti intere di ciascun prodotto dalla più alla meno significativa, con numero di bit proporzionale all’accuratezza • Esempio: 0.58710 0.587*2= 1.174 parte intera 1 parte frazionaria 0.174 0.174*2= 0.348 parte intera 0 parte frazionaria 0.348 0.348*2= 0.696 parte intera 0 parte frazionaria 0.696 0.696*2= 1.392 parte intera 1 parte frazionaria 0.392 0.392*2= 0.784 parte intera 0 parte frazionaria 0.784 0.784*2= 1.568 parte intera 1 parte frazionaria 0.568 ….. Risultato : 0.1001 con quattro cifre e approssimazione accurate entro il limite 2-4 0.100101 con sei cifre e approssimazione accurate entro il limite 2-6 Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
Numeri reali • Approssimati tramite numeri razionali • Rappresentazione relativa sia alla parte intera che a quella frazionaria • Modalità di rappresentazione alternative: • virgola fissa • virgola mobile • numeri molto grandi con poche cifre • numeri molto piccoli con precisione • Operazioni di somma e differenza tramite allineamento dei numeri Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
R 0 Virgola fissa • Uso di m bit per parte intera e n bit per parte frazionaria con n ed m fissi • Esempio (m=8, n=6, tot. 14 bit): 123,5871012310 = 011110112 0,58710 100101 2 123,58710 01111011, 100101 2 • m e n scelti in base alla precisione che si vuole tenere • Precisione costante lungo l’asse reale R: Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
R 0 Virgola mobile (floating point) • Il numero è espresso come: r = m·bn • m e n sono in base p • m:mantissa (numero frazionario con segno) • b: basedella notazione esponenziale (numero naturale) • n:caratteristica (numero intero) • Esempio (p=10, b=10): -331,6875 = -0,3316875103m = -0,3316875 n = 3 • Uso l1 bit e l2 bit per codificare m e n(incluso il segno): • Precisione variabile lungo l’asse realeR: • valori rappresentabili molto vicini nell’intorno di 0 • valori rappresentabili molto lontani nell’intorno del numero massimo esprimibile, positivo o negativo Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
Virgola mobile (floating point) • Quando la mantissa comincia con una cifra diversa da zero, il numero in virgola mobile si dice normalizzatoEs. –0,3316875103 è normalizzato perché la mantissa è “3316875” • La normalizzazione permette di avere, a parità di cifre usate per la mantissa, una maggiore precisione. Es. Uso l1=5 cifre per la mantissa:+45,6768 +0,45676102 +0,00456104 Ho perso 0,0008 Ho perso0,0768 Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
Caratteri • Codifica numerica tramite 1 byte • ASCII (American Standard Code for Information Interchange) utilizza 7 bit (estesa talvolta a 8 bit per rappresentare altri 128 caratteri) • L’ASCII codifica: • I caratteri alfanumerici (lettere maiuscole e minuscole e numeri), compreso lo spazio • I simboli (punteggiatura, @, #, …) • Alcuni caratteri di controllo che non rappresentano simboli visualizzabili (TAB, LINEFEED, RETURN, BELL, ecc) • Non codifica per esempio le lettere accentate o greche • L’ ottavo bit o un nono possono essere usati come bit di parità: rende pari il numero di 1 in modo che se esso risulta dispari ci si accorge di errori di immagazzinamento o trasmissione dati. Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
DEC CAR DEC CAR DEC CAR DEC CAR DEC CAR 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 56 8 57 9 65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 97 a 98 b 99 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z Tabella ASCII (parziale) Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
Codifica delle immagini L’immagine digitale • Le immagini sono codificate come sequenze di bit • Digitalizzazione: passaggio dall’immagine alla sequenza binaria • L’immagine è suddivisa in una griglia di punti (detti pixel) • Ogni pixel è descritto da un numero (su 8, 16, 24, o 32 bit) che ne rappresenta il colore(un particolare tono di grigi nelle immagini bianco e nero) • Es. con 8 bit 28 = 256 combinazioni di colore • Per decodificare la sequenza binaria che codifica l’immagine bisogna conoscere: • le dimensionidell’immagine : larghezza e altezza in pollici del rettangolo in cui è contenuta • la risoluzione dell’immagine :numero di pixel per pollice (dpi - dot per inch) • il numero di colori o toni di grigio disponibili per ogni pixel Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
L’immagine digitale • Standard di codifica: • TIFF (Tagged Image File Format) • PNG (Portable Network Graphics) • JPEG • Tecniche di compressione • utilità: • ridurre lo spazio necessario a rappresentare i punti dell’immagine • ridurre la quantità di memoria necessaria a memorizzare l’immagine • ridurre il tempo necessario a trasmettere l’immagine tra i dispositivi • classificazione: • compressionelossless : comprime l’immagine senza deteriorarla (TIFF) • adatte solo per immagini con ampie aree monocromatiche. in cui sequenze di punti con la stessa tonalità vengono codificate in forma compatta • compressione lossy: comprimono (molto di più), ma deteriorano l’immagine (JPEG , PNG) • adatte ad immagini con molti colori, memorizzano le differenze cromatiche tra gruppi di pixel Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
Operazioni con le informazioni • Aritmetiche • Es. Somma e differenza viste prima • Logiche • Utilizzano l’algebra di Boole Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
Algebra di Boole • Formalismo basato su tre operazioni logiche (dette anche operazioni booleane): • AND operatore binario • OR operatore binario • NOT operatore unario • Le operazioni booleane si applicano ad operandi che possono assumere solo due valori: vero o falso • Ogni formula scritta in algebra di Boole può assumere solo due valori: vero o falso • Rappresentando vero con “1” e falso con “0” un bit può rappresentare un operando o il valore di una formula in algebra di Boole • Tavole di verità: rappresentano il valore di una espressione logica(ottenuta a partire dai tre operatori logici) in funzione del valore degli operandi Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
Operatori booleani • Tavole di verità: Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
Operatori booleani: proprietà • Commutativa: • A OR B = B OR A • A AND B = B AND A • Distributiva di uno verso l’altro: • A OR (B AND C) = (A OR B) AND (A OR C) • A AND (B OR C) = (A AND B) OR (A AND C) • Leggi di De Morgan: • A AND B = NOT ((NOT A) OR (NOT B)) • A OR B = NOT ((NOT A) AND (NOT B)) Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
Espressioni booleane • Regole di precedenza: • NOT ha la massima precedenza • poi segue AND • infine OR • Se voglio alterare queste precedenze devo usare le parentesi (a volte usate solo per maggior chiarezza) • Per valutare un espressione booleana si usa la tabella della verità • Due espressioni booleane sono equivalenti se e solo se le tabelle della verità sono identiche Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
Dalla formula alla tabella • Vediamo un esempio, per l’espressione:D = A AND NOT (B OR C) Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
NOT A AND B A AND NOT B A AND B Dalla tabella alla formula • Se conosco la tabella della verità, posso ricostruire la formula logica. Partiamo dalla tabella: • C1 = (NOT A AND B) OR (A AND NOT B) OR (A AND B) Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010
Gli operatori logici e le porte logiche • OR (xy) • AND (xy) • NOT ( x ) La composizione opportuna di porte logiche consente di realizzare circuiti elettronici che realizzano varie funzioni, in particolare i circuiti sommatori Fondamenti di Informatica CDL in Ingegneria Meccanica (B) - A.A. 2009-2010