La codifica digitale Codifica digitale Il computer e il sistema binario Il computer elabora esclusivamente numeri. Ogni immagine, ogni suono, ogni informazione per essere “compresa” e rielaborata dal calcolatore deve essere prima trasformata in una sequenza di numeri. Il computer usa il passaggio di corrente elettrica come“alfabeto” per codificare tutte le informazioni. La corrente elettrica ha solo due stati: “presenza” e “assenza”. Pertanto l’alfabeto usato dal computer è un alfabeto binario. Elementi di Informatica Chiara Epifanio Codifica digitale Il computer e il sistema binario Ogni informazione elaborata dal computer è costruita con due soli simboli: “0” e “1”. Bisogna tradurre ogni informazione in sequenze di 0 e 1. La “traduzione” si chiama codifica e poiché si usano solo due simboli allora si chiama codifica binaria. I simboli 0 e 1 si chiamano anche bit (contrazione delle parole inglesi: binary digit = cifra binaria). Elementi di Informatica Chiara Epifanio Codifica digitale Il computer e il sistema binario Per quanto detto il computer è capace di riconoscere due soli stati della corrente e ad ognuno di essi associa un valore (0 o 1). Un linguaggio che si basa su due soli caratteri si chiama “linguaggio binario”. Poiché nel caso del calcolatore i caratteri sono due numeri (0 o 1), diciamo che il calcolatore fa uso del sistema (di numerazione) binario. Elementi di Informatica Chiara Epifanio Codifica digitale Il computer e il sistema binario Quindi ogni dato immesso nel calcolatore, o ogni istruzione impartita, deve essere scritta utilizzando stringhe (sequenze) di 0 e 1, ossia in linguaggio binario. Il linguaggio binario è il linguaggio macchina, ossia quello compreso e usato dalla macchina (il computer) per eseguire le istruzioni o immagazzinare i dati. Quando usiamo il computer il Sistema Operativo “traduce” ogni nostro comando in una stringa di 0 e 1 (linguaggio macchina), per permettere al computer di eseguire le istruzioni impartite. Elementi di Informatica Chiara Epifanio I sistemi di numerazione Sistemi di numerazione I sistemi di numerazione Il SISTEMA NUMERICO, detto anche SISTEMA DI NUMERAZIONE, è l’insieme di tutti i numeri rappresentati usando uno stesso insieme di regole. Ogni numero può essere rappresentato seguendo regole diverse, quindi lo stesso numero può avere rappresentazione diversa (in relazione alle regole seguite) malgrado il suo valore non cambi. 12 Base 10 Elementi di Informatica XII Numerazione Romana 1100 Base 2 Chiara Epifanio Sistemi di numerazione I sistemi di numerazione Ogni numero è rappresentato mediante dei segni elementari che si ripetono nella costruzione dei vari numeri. Questi segni elementari si chiamano cifre. Ogni cifra deve essere distinta dalle altre. Il numero di cifre necessarie per rappresentare tutti i numeri può essere finito o infinito. Elementi di Informatica Chiara Epifanio Sistemi di numerazione Tipi di sistemi di numerazione I sistemi di numerazione possono essere distinti in due grandi categorie: Sistemi di numerazione Sistemi addizionali Elementi di Informatica Sistemi posizionali Chiara Epifanio Sistemi numerici addizionali I sistemi numerici addizionali I sistemi numerici addizionali sono quelli concettualmente più semplici, ma più difficili da capire (almeno per noi che utilizziamo correntemente un sistema numerico posizionale). Nei sistemi numerici addizionali ogni cifra assume sempre lo stesso valore indipendentemente dalla posizione occupata. Tra due cifre di una sequenza è sottointesa un’operazione. Non è necessario rappresentare lo zero. Sono necessari infiniti simboli diversi (cifre) per poter rappresentare tutti i numeri (infiniti). Il sistema addizionale più noto è quello romano. Elementi di Informatica Chiara Epifanio Sistemi numerici addizionali Il sistema di numerazione romano Le cifre del sistema di numerazione romano sono: I=1 V=5 X=10 L=50 C=100 D=500 M=1000 XX = 10+10 = 20 10 10 LXII = 50+10+1+1 = 62 10 XC = -10+100 = 90 10 Come si vede la lettera X vale sempre 10 indipendentemente dalla posizione che occupa. Elementi di Informatica Chiara Epifanio Sistemi numerici posizionali I sistemi numerici posizionali Nei sistemi numerici posizionali ogni cifra assume un valore diverso in relazione alla posizione occupata. Il numero di “cifre elementari distinte” si chiama base del sistema di numerazione. Tra due cifre di una sequenza è sottointesa un’operazione di somma di prodotti per una potenza della base. È necessario definire una cifra che abbia valore nullo. Sono sufficienti un numero finito di cifre (almeno due) per poter rappresentare tutti i numeri. Il sistema posizionale più noto è quello decimale. Elementi di Informatica Chiara Epifanio Sistemi numerici posizionali Il sistema di numerazione decimale Nel sistema decimale si usano 10 cifre distinte (0,1,2,3,4,5,6,7,8,9) per rappresentare qualsiasi numero. Quindi la base del sistema decimale è 10. Per ottenere il valore di un numero decimale bisogna moltiplicare ogni cifra del numero per una potenza di 10 con esponente uguale alla posizione occupata dalla cifra, partendo dalla fine, meno uno; quindi sommare questi prodotti. Con n “posti” si possono rappresentare esattamente 10n numeri distinti a partire da 0. Elementi di Informatica Chiara Epifanio Sistemi numerici posizionali Il sistema di numerazione decimale Consideriamo il numero 34553 34553 = 3 x 104 + 4 x 103 + 5 x 102 + 5 x 101 + 3 x 100 Infatti: 3 x 10.000 + 4 x 1.000 + 5 x 100 + 5 x 10 + 3 x 1 = 30.000 + 4.000 + 500 + 50 + 3 = 34553 Elementi di Informatica Chiara Epifanio Sistemi numerici posizionali Il sistema di numerazione decimale Quindi nel numero 34553 la stessa cifra ha un valore diverso in relazione alla posizione occupata. 34553 3 50 500 4.000 30.000 Elementi di Informatica Chiara Epifanio Sistemi numerici posizionali Il sistema di numerazione decimale I numeri negativi si rappresentano col segno meno. Il numero -8888 è costituito tutto dalla stessa cifra (8), ma ogni cifra ha un valore diverso in relazione alla posizione che occupa. -8888 8 80 800 8.000 Elementi di Informatica Chiara Epifanio Sistemi numerici posizionali Il sistema di numerazione in base n Possiamo scegliere n cifre diverse e creare un sistema di numerazione in base n. Per esempio in base 16 (sistema esadecimale) le cifre sono: 0 1 2 3 4 5 6 7 8 9 A B C D E F. Per ottenere il valore di un numero decimale bisogna moltiplicare ogni cifra del numero per una potenza di 16 con esponente uguale alla posizione occupata dalla cifra, partendo dalla fine, meno uno; quindi sommare questi prodotti. Con n posti si possono rappresentare esattamente 16n numeri distinti a partire da 0. Elementi di Informatica Chiara Epifanio Infatti… Teorema: Sia b un intero non negativo (base). Ogni intero n>1 può essere espresso in maniera unica nella forma n = a0·b0 + a1·b1 + a2·b2 +........... + am·bm dove m è un intero non negativo e 0≤ ai <b. Questo teorema ci permette di rappresentare i numeri in qualunque base b. La sequenza sarà la rappresentazione del numero n in base b. In particolare se b=2, allora otteniamo la rappresentazione binaria di n. Nel sistema binario quindi ogni numero sarà espresso con le sole cifre 0 e 1 (<b=2). Se quindi ci viene dato un numero non in forma decimale, per determinare qual è il suo valore in forma decimale, basta applicare la formula del teorema. Il sistema di numerazione esadecimale Il numero 5BF2 è uguale a: 5BF2 2x160=2 15x161=240 11x162=2816 5x163=20480 Pertanto sommando i prodotti ottenuti si ha che: (5BF2)16 = (23538)10 Elementi di Informatica Chiara Epifanio Sistemi numerici posizionali Il sistema di numerazione binario Nel sistema binario si usano solo 2 cifre distinte (0,1) per rappresentare qualsiasi numero. La base del sistema binario è 2. Per ottenere il valore di un numero decimale bisogna moltiplicare ogni cifra del numero per una potenza di 2 con esponente uguale alla posizione occupata dalla cifra, partendo dalla fine, meno uno; quindi sommare questi prodotti. Con n posti si possono rappresentare esattamente 2n numeri distinti a partire da 0. Elementi di Informatica Chiara Epifanio Sistemi numerici posizionali Il sistema di numerazione binario Consideriamo il numero (1001010)2 (1001010)2 <-> 1 x 26 + 0 x 25 + 0 x 24 + 1 x 23 + 0 x 22 + 1 x 21 + 0 x 20 Infatti: 1 x 64 + 0 x 32 + 0 x 16 + 1 x 8 + 0 x 4 + 1 x 2 + 0 x 1 = 64 + 8 + 2 = (74)10 Elementi di Informatica Chiara Epifanio Sistemi numerici posizionali Il sistema di numerazione binario Quindi nel numero (1001010)2 la stessa cifra ha un valore diverso in relazione alla posizione occupata. 1001010 0 21=2 0 23=8 0 0 26=64 Elementi di Informatica Chiara Epifanio Sistemi numerici posizionali Il sistema di numerazione binario Il numero (111111)2 = 63 è costituito tutto dalla stessa cifra (1), ma ogni cifra ha un valore diverso in relazione alla posizione che occupa. 111111 20=1 21=2 22=4 23=8 24=16 25=32 Elementi di Informatica Chiara Epifanio Conversione dal sistema decimale al sistema binario: il metodo delle divisioni successive 1) Dividere il numero per 2 e conservare il resto della divisione, 2) ripetere il passo precedente sul risultato finché non si arriva ad ottenere 1, 3) leggere 1 e tutti i resti dall’ultimo al primo per ottenere il numero in forma binaria. Sistemi numerici posizionali Metodo delle divisioni successive 39 1 2 19 1 2 9 1 2 4 0 2 2 2 0 1 39 = 1 Elementi di Informatica Chiara Epifanio Sistemi numerici posizionali Metodo delle divisioni successive 39 2 19 2 9 2 4 2 2 2 1 39 = 1 0 0 1 1 1 Elementi di Informatica Chiara Epifanio Un secondo metodo 1) Trovare la più grande potenza di 2 più piccola del numero, 2) sottrarla al numero, 3) ripetere il procedimento sulla differenza fino ad arrivare al valore 1. 4) Scrivere 1 in corrispondenza di ogni potenza di 2 presente e 0 per quelle che non figurano. Conversione secondo le potenze di 2 Sia n = 155 155 - 128 = 27 27 - 16 = 11 11 - 8 = 3 3-2=1 1-1=0 155 = 27 +24 +23 +21 +20 → 10011011 20 = 1 21 = 2 22 = 4 23 = 8 24 = 16 25 = 32 26 = 64 27 = 128 28 = 256 Sistemi numerici posizionali La somma di due numeri binari La somma di due numeri binari viene eseguita in modo analogo a quella dei numeri decimali. I numeri binari si sommano a due a due. Si allineano i due numeri a partire dall’ultima cifra e si sommano ricordando che: 1 + 1 = 0 col resto di 1 0+ 1 = 1 col resto di 0 1+ 0 = 1 col resto di 0 0+ 0 = 0 col resto di 0 Elementi di Informatica Chiara Epifanio La somma di due numeri binari 1000+ 11110 = 100110 Elementi di Informatica 8 30 38 Chiara Epifanio Sistemi numerici posizionali La somma di due numeri binari 1000+ 11110 = 100110 1 011 011 + 111011 = 10 01 0110 Elementi di Informatica 91 59 150 Chiara Epifanio Sistemi numerici posizionali La differenza di due numeri binari La differenza di due numeri binari viene eseguita in modo analogo a quella dei numeri decimali. I numeri binari si sottraggono a due a due. Si allineano i due numeri a partire dall’ultima cifra e si sottraggono ricordando che: 0 – 1 = 1 con un “prestito” –1 – 1 = 0 con un “prestito” –1 – 0 = 1 con un “prestito” Elementi di Informatica Chiara Epifanio Sistemi numerici posizionali La differenza di due numeri binari 1 011 011 – 111011 = 59 10 0000 32 Elementi di Informatica 91 Chiara Epifanio Sistemi numerici posizionali La differenza di due numeri binari 1 011 011 – 111011 = 10 0000 1 1 001 01 – 101110 = 110111 Elementi di Informatica 101 46 55 Chiara Epifanio Complemento a due La rappresentazione in complemento in base due Se dobbiamo rappresentare i numeri interi negativi nel sistema binario (e in particolare nel computer) non possiamo utilizzare il segno meno, ma dobbiamo utilizzare una particolare codifica detta: “complemento a due”. La rappresentazione in complemento a due può avvenire solo se tutti i numeri sono rappresentati utilizzando lo stesso numero di cifre (stessa lunghezza). Con questo tipo di rappresentazione ogni successione di 0 e 1 di lunghezza n fissata rappresenta numeri positivi o negativi. Elementi di Informatica Chiara Epifanio Complemento a due La rappresentazione in complemento in base due Supponiamo di utilizzare n cifre per rappresentare il numero x. La rappresentazione del numero x in complemento a due coincide con la rappresentazione binaria del numero 2n-x. Ricordiamo che con n cifre binarie possiamo rappresentare 2n numeri interi che, con questa rappresentazione, saranno in parte positivi e in parte negativi. N.B.: Sfruttando le proprietà della numerazione binaria è stato definito un altro metodo empirico per calcolare il complemento in base due di un numero: si trasformano le cifre 0 in 1 e viceversa e si somma 1 al valore ottenuto. Elementi di Informatica Chiara Epifanio Esempio Vogliamo complementare in base due il numero 10011001. Primo metodo: (10011001)’=28-10011001= 100000000-10011001=01100111 Secondo metodo: 10011001 01100110 01100111 Complemento a due Notiamo che con la rappresentazione in complemento a due: I numeri che cominciano con 1 sono tutti negativi. I numeri che cominciano con 0 sono tutti positivi. Utilizzando n cifre si possono rappresentare 2n–1 numeri negativi e 2n–1–1 numeri positivi oltre lo zero. Non si ha bilanciamento tra numeri positivi e negativi perché lo zero viene rappresentato come un numero positivo. Elementi di Informatica Chiara Epifanio