Lezione 2 Il sistema binario Sommario ? La differenza Analogico/Digitale ? Il sistema binario 1 La conoscenza del mondo ? Per poter parlare (ed elaborare) degli oggetti (nella visione scientifica) si deve poter assegnare a questi una descrizione ? questa descrizione riassume tutta l’informazione che ci interessa conoscere su un dato oggetto/fenomeno ? la descrizione può essere: ? categorica ? ordinale ? numerale Descrizione ? Categorica ? Lunedì/Martedì/../Domenica ? Antonio/Mario/…/Ugo ? Ordinale ? Disgustoso/Insipido/Saporito/Gustoso ? Banale/Comune/Originale ? Brutto/Bello ? Numerale ? 1,2,3,…,99,100 ? -0.1356, +1.34 E +12 2 Dati e interi ? NOTA ? E’ possibile mettere in corrispondenza i dati categorici e ordinali con i numeri interi ? Lunedì=1, Martedì=2, …, Domenica=7 ? Disgustoso=0, Insipido=1, Saporito=2, Gustoso=3 ? Nel caso di dati categorici vale il concetto di dizionario ? Nel caso di dati ordinali vale il concetto di relazione di ordine Dati e interi ? ...non significa che tutte le operazioni o relazioni ammissibili su gli interi hanno adesso senso per i dati categorici o ordinali (la corrispondenza non è biunivoca) ? per i categorici ha senso solo la relazione di egualianza ? per gli ordinali ha senso solo la relazione di ordinamento < > = 3 Le grandezze numerali ? Sono molto importanti ? è possibile definire operazioni: es. date due lunghezze di due corde A e B è possibile determinare la lunghezza complessiva A+B ? Le grandezze numerali 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 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 4 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 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 5 Esempio ? Immagine: ? foto ? scansione computerizzata 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 6 Approssimazione 90 85 80 75 70 65 60 55 50 45 40 35 30 25 20 15 10 5 0 90 80 70 60 50 40 Digitale Analogico 30 20 10 10 9 8 7 6 5 4 3 2 1 0 Analogico/Digitale ? L’apparato sensoriale degli esseri umani è limitato ? oltre una certa risoluzione/definizione i sensi non distinguono più fra discreto e continuo ? es: ? audio (CD a 44KHz) [approfondire esempio] ? risoluzione di arco (immagini) 7 Conclusione ? Se ? siamo in grado di elaborare i numeri naturali ? indichiamo in qualche modo la unità frazionaria ? allora ? siamo in grado di elaborare i numeri razionali ? e quindi ? siamo in grado di approssimare i numeri reali 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 e relazioni ammesse) ? il calcolatore tratta solo grandezze discrete 8 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: Quale è il peso di un dato tavolo? ? proprietà di interesse=il peso ? unità di misura=kg ? conoscenza: questo tavolo pesa <30 kg> 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 9 Rappresentazione dei numeri ? E’ possibile rappresentare i numeri in modi diversi ? quale e’ il modo più semplice ed affidabile per rappresentare i numeri e fare operazioni? 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 non è un numero 10 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 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 non è un numero 11 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*31+ 2*30 =2*27+9+2=65 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+ … c 1*B 1+c0*B 0 12 Fine prima parte 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 ? 20301 non è un numero 13 Conversione binario decimale ? Quale numero in base 10 rappresenta il seguente numero in base 2? 11010 = 1*24 + 1*2 3+ 0*2 2+ 1*21+ 0*20 = 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*8 1+ 2*8 0=64+56+2=122 14 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)*161+ 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 15 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 2n numeri 16 Esercizio ? Scrivere le potenze del 2 ? scrivere quanti bit sono necessari per rappresentare i seguenti numeri: ? 4,9,23,78,2567 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 17 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*23+1*22+0*21+1*20 ? quindi stiamo proprio determinando i pesi da dare alle potenze del due ovvero le cifre in notazione binaria 18