Lezione2 - Dipartimento di Ingegneria dell`Informazione

Lezione 2
Analogico/Digitale
Il sistema binario
L’aritmetica binaria
La conoscenza del mondo
• Per poter parlare (ed elaborare) degli oggetti
(nella visione scientifica) si deve poter
assegnare a questi una descrizione
• la descrizione può essere:
– categorica
– ordinale
– numerale
1
Dati e interi
• non significa che tutte le operazioni che
sono permesse con gli interi hanno adesso
senso per i dati categorici o ordinali
(la corrispondenza non è biunivoca)
• per i categorici ha senso solo l’operazione
di egualianza
• per gli ordinali ha senso solo l’operazione di
ordinamento (< o > o =)
Continuo/Discreto
• Le grandezze numeriche possono essere
continue o discrete
– continuo: la temperatura
– discreto: il numero di abitanti di una nazione
• Le grandezze continue si rappresentano con
i numeri reali
• Le grandezze discrete con i numeri naturali
3
Continuo/Discreto
• Numeri razionali: A/B con A e B in N
• Si possono esprimere frazioni
– un terzo di una torta
– 2/3 di un giorno
• Possiamo pensare ad un numero razionale come
ad una indicazione di quante sotto unità
considerare
– 2/3 = prendere 2 sotto unità da 1/3
– se disponiamo di un modo per indicare la sotto unità
per rappresentare i razionali ci bastano i naturali
Continuo/Discreto
• Si può approssimare un numero reale con un
numero razionale
• in pratica significa che ci fermiamo dopo un certo
numero di cifre decimali
– 2,34 significa: scegli come sotto unità 0,01 e prendine
234
• si possono dare approssimazioni razionali
arbitrariamente vicine ad un reale:
• 3,14 = 314 x 0.01
• 3,1415672343 = 31415672343 x 0.00000001
4
Analogico/Digitale
• Il predicato analogico è l’equivalente di
continuo, digitale di discreto
• dato un segnale analogico/continuo se ne
può costruire una approssimazione
digitale/discreta arbitrariamente vicina
Esempio
90
80
70
60
50
40
30
20
10
0
90
80
70
60
50
40
30
20
10
0
Digitale
Analogico
1 2 3 4 5 6 7 8 9 10
5
Digitale+informatica
• L’informatica vuole trattare l’informazione
• L’informazione può essere di tipo categorico,
ordinale, numerale
• Ogni tipo di informazione può essere elaborata
come se stessimo elaborando informazione
numerica (con opportune restrizioni sulle
operazioni ammesse)
• il calcolatore tratta solo numeri
I dati numerici
• La conoscenza di una proprietà di un
oggetto è data dalla coppia (valore della
misura, unità di misura)
• il valore della misura è espresso tramite un
numero
• es: proprietà di interesse=il peso
• unità di misura=kg
• conoscenza: questo tavolo pesa (30 kg)
7
Dati numerici
• La manipolazione delle quantità numeriche
prevede l’introduzione del concetto di
operazione
• op(num1, num2)=num3
• es:
– somma(23,3)=26
– potenza(2,3)=8
– egualianza(4,5)=0, egualianza(5,5)=1
Rappresentazione dei numeri
• E’ possibile rappresentare i numeri in modi
diversi
• a seconda di come si rappresentano i numeri
cambia il modo di calcolare il risultato di
una data operazione su di essi
• quale e’ il modo più semplice ed affidabile
per rappresentare i numeri e fare
operazioni?
8
Il sistema decimale
• Il sistema di numerazione comunemente
impiegato è quello posizionale in base 10 o
decimale
• il sistema decimale si basa su dieci simboli
diversi detti cifre: 0123456789
• un numero è rappresentato da una sequenza
di cifre: 2876 è un numero (23A$12 no)
Il sistema decimale
• Il termine posizionale indica che il valore assunto da
ciascuna cifra dipende dalla sua posizione entro la
sequenza
• in 392, la cifra 2 vale 2 unità ovvero 2, la cifra 9 vale 9
decine ovvero 9x10=90, la cifra 3 vale 3 centinaia ovvero
3x100=100
• in sintesi:
• 8453=8x1000+4x100+5x10+3
• ovvero:
• 8453=8*103+4 *102 +5*101 +3*100
9
La base numerica
• I numeri si possono rappresentare anche con
altri sistemi di numerazione posizionale
• si consideri un sistema in base 3
• si hanno 3 simboli o cifre: 012
• un numero è sempre rappresentato da una
sequenza di cifre: 201122 è un numero
(241765 no)
Base numerica
• A quale numero in base 10 equivale il
numero 2102 in base 3?
• Il valore associato ad ogni cifra dipende
dalla posizione:
2102= 2*3 3+ 1*32+ 0*3 1+ 2*30 =2*27+9+2=65
10
Base numerica
• In generale dato un numero in base
numerica B:
cn cn-1… c1 c0
dove la cifra ci assume uno di B possibili valori
• il valore in base decimale è dato da
cn*Bn+cn-1*Bn-1+ … c1*B1+c0*B0
Binario
• Il sistema numerico più semplice possibile è
quello binario
• le cifre sono: 01
• le cifre sono chiamate bit
• una sequenza di cifre è un numero binario
– 00101010111110101 è un numero (120301 no)
11
Conversione binario decimale
• Quale numero in base 10 rappresenta il
seguente numero in base 2?
11010 = 1*2 4+ 1*23+ 0*2 2+ 1*21+ 0*2 0
= 16+8+2=26
Ottale
• I calcolatori usano numeri in base 2,8 o 16
• come si vedrà la conversione di numeri fra
queste basi è molto semplice
• in base 8 si ha il sistema ottale
• le cifre ammesse sono: 01234567
172= 1*82+ 7*81+ 2*80=64+56+2=122
12
Esadecimale
• Un sistema numerico in base 16 è detto
esadecimale
• le cifre ammesse sono:
• 0123456789ABCDEF
A=10,B=11,C=12,D=13,E=14,F=15
• 7C1= 7*162+ C(=12)*16 1+ 1*160=
7*256+12*16+1=1985
Intervallo di rappresentazione
• Se il numero di cifre con cui rappresentare
un numero è limitato allora anche
l’intervallo di numeri rappresentabile è
limitato
• es. in base decimale con due cifre si
possono rappresentare i numeri da 0 a 99
cioè 100 numeri
• con tre cifre da 0 a 999 cioè 1000 numeri
13
Esercizio
• Le targhe
• se una targa è così composta: 2 lettere 3
numeri 2 lettere, dove le lettere
appartengono ad un alfabeto di 25 simboli,
quante targhe distinte si possono ottenere?
Intervallo di rappresentazione
• In generale in un sistema in base B con n
cifre si rappresentano numeri nell’intervallo
[0,Bn-1] ovvero Bn numeri
• in base 2 pertanto con n cifre si
rappresentano 2 n numeri
14
Esercizio
• Scrivere le potenze del 2
• scrivere quanti bit sono necessari per
rappresentare i seguenti numeri:
• 4,9,23,37,78,55,12,128,345,678,923,2567,4
234,
Conversione decimale-binario
• Per convertire da decimale a binario si procede secondo il
seguente algoritmo:
– si divide il numero decimale per 2
– si considera il quoziente e il resto
– il resto può valere 0 o 1 e rappresenta la cifra binaria di peso
minore
– si ripete il procedimento fino a quando il quoziente non è nullo
• la sequenza dei resti delle divisioni (presi in ordine inverso
rispetto a come sono ottenuti) è il numero binario cercato
15
Esempio
•
•
173(10)=?(2)
173/2
86
86/2
43
43/2
21
21/2
10
10/2
5
5/2
2
2/2
1
1/2
0
resto 1
resto 0
resto 1
resto 1
resto 0
resto 1
resto 0
resto 1
10101101
Perché funziona l’algoritmo?
•
•
•
•
•
•
•
173=86*2+1
ma 86=23*2+0
allora 173=(23*2+0)*2+1
ma 23=12*2+1
allora 173=((12*2+1)*2+0)*2+1
cioè 173=12*2 3+1*22+0*21+1*20
quindi stiamo proprio determinando i pesi da dare
alle potenze del due ovvero le cifre in notazione
binaria
16
La somma
• Come per numerazione decimale
• gli operandi sono incolonnati allineandoli a destra
• procedendo dai bit di peso inferiore a quelli di peso
superiore
• si esegue la somma bit a bit secondo le seguenti regole:
– 0+0=0
– 0+1=1+0=1
– 1+1=0 con riporto di 1
• se la somma genera riporto al passo successivo si
sommano 3 bit: i due bit degli operandi e il bit di riporto
Overflow
• Se i numeri vengono rappresentati con un numero
di cifre fissato n e la somma di due operando è un
numero maggiore del massimo numero
rappresentabile con n cifre si ha la condizione di
overflow
• si genera overflow nella somma di due numeri di n
cifre quando si ha un riporto oltre la cifra di peso n
17
La sottrazione
• L’operando minore è incolonnato allineandolo a destra
sotto quello maggiore
• si esegue la sottrazione bit a bit procedendo dal bit di peso
minore verso quello di peso maggiore secondo le seguenti
regole:
– 0-0=0
– 1-0=1
– 0-1=1 con prestito di 1
– 1-1=0
• se la sottrazione genera un prestito al passo successivo si
esegue la sottrazione tra i due operandi e successivamente
si sottrae 1
Nota
• Non si può sottrarre un numero maggiore da
uno minore
• verificare sempre prima il modulo dei due
operandi
18
Shift o scalamento
• Si può shiftare di un numero n di bit a
destra o a sinistra
• shiftare di n bit a sinistra significa
aggiungere n bit in posizione meno
significative a 0
• shiftare di n bit a destra significa eliminare
gli n bit meno significativi
La moltiplicazione
• Algoritmo di somma e scorrimento
• si incolonna a destra e si riporta la moltiplicazione del
moltiplicando per ogni bit del moltiplicatore su linee
successive
• ogni numero risultante va scalato (shiftato) di un numero di
posizioni verso sinistra pari alla posizione del bit
moltiplicatore
• si sommano poi tutti i numeri risultanti
• Le regole base della moltiplicazione tra due bit sono:
– 0x0=0
– 0x1=1x0=0
– 1x1=1
19
Moltiplicazione II
• Dato che moltiplicare per 0 e poi sommare
il risultato è equivalente a non eseguire
alcuna operazione si può procedere a
semplificare l’operazione di moltiplicazione
incolonnando opportunamente solo le
repliche shiftate del moltiplicando
Moltiplicazione III
• Moltiplicare per una potenza della base di
numerazione è equivalente a shiftare il
numero di un numero di posizioni pari alla
potenza
• ex: moltiplicare per 4 in binario equivale a
shiftare di 2 posizioni il moltiplicando
20
Esercizio
• Quanti bit sono necessari per rappresentare
il prodotto tra due numeri di n e m bit?
• (2 n-1) * (2m-1) = 2n+m- 2n- 2m+1
• pertanto sono necessari nel caso peggiore n+m bit
• se n=m si deve raddoppiare il numero di bit
21