La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Codifica dei numeri Il codice ASCII consente di codificare le cifre decimali da “0” a “9” fornendo in questo modo una rappresentazione dei numeri Per esempio:

Presentazioni simili


Presentazione sul tema: "Codifica dei numeri Il codice ASCII consente di codificare le cifre decimali da “0” a “9” fornendo in questo modo una rappresentazione dei numeri Per esempio:"— Transcript della presentazione:

1 Codifica dei numeri Il codice ASCII consente di codificare le cifre decimali da “0” a “9” fornendo in questo modo una rappresentazione dei numeri Per esempio: il numero 324 potrebbe essere rappresentato dalla sequenza di byte: Ma questa rappresentazione non è efficiente e soprattutto non è adatta per eseguire le operazioni aritmetiche sui numeri

2 Codifica dei numeri (il sistema decimale)
La rappresentazione dei numeri con il sistema decimale può essere utilizzata come spunto per definire un metodo di codifica dei numeri all’interno degli elaboratori Esempio: la sequenza di cifre 324 viene interpretato come: 3 centinaia decine unità 324 = 3 x x x 1 324 = 3 x x x 100

3 Codifica dei numeri (il sistema decimale)
In generale la sequenza cn cn-1cn-2 … c1c0 (ogni “ci” è una cifra compresa tra “0” e “9”) viene interpretata come: c0 x (c0 unità) c1 x (c1 decine) c2 x (c2 centinaia) cn-1 x 10n-1 + cn x 10n La cifra meno siginificativa La cifra più siginificativa

4 Codifica dei numeri (il sistema binario)
La numerazione decimale quindi utilizza una notazione posizionale basata sul numero 10 La notazione posizionale può essere utilizzata in qualunque altro sistema di numerazione (con base diversa di 10) Nel sistema di numerazione binario i numeri vengono codificati utilizzando le due cifre “0” e “1”

5 Codifica dei numeri (il sistema binario)
In analogia con il caso decimale la sequenza cn cn-1cn-2 … c1c0 (ogni “ci” è la cifra “0” o la cifra “1”) rappresenterà il numero c0 x 20 + c1 x 21 + c2 x 22 + … + cn-1 x 2n-1 + cn x 2n La cifra meno siginificativa La cifra meno siginificativa La cifra più siginificativa

6 Codifica dei numeri (il sistema binario)
Esempio: la sequenza “1011” denota il numero 1 x x x x 23 = 11 (in base 10) Per evitare ambiguità si usa la notazione 10112 = 1110

7 Conversione dalla base 10 alla base 2
Dato un numero N rappresentato in base dieci, la sua rappresentazione in base due sarà del tipo cm cm-1cm-2 … c1c0 (le “ci” sono cifre binarie) Per convertire un numero in base dieci nel corrispondente in base due si devono trovare i resti delle divisioni successive del numero N per due

8 Conversione dalla base 10 alla base 2
Esempio: il numero 610: 6/2 = 3 resto 0 3/2 = 1 resto 1 1/2 = 0 resto 1 Leggendo i resti dal basso verso l’alto, si ha che la rappresentazione binaria del numero 610 è 1102

9 Conversione dalla base 10 alla base 2
Perchè 1102 = 610 ? 6/2 = 3 resto 0 0 x 20 + 3/2 = 1 resto 1 1 x 21 + 1/2 = 0 resto x 22 = 6 0 x x x 22 = 1 x x 21 con resto 0 2 1 x x = 1 x 20 con resto 1 1 x = con resto 1

10 Conversione dalla base 10 alla base 2
Esempio: il numero 34510: 345/2 = 172 resto 1 172/2 = 86 resto 0 86/2 = 43 resto 0 43/2 = 21 resto 1 21/2 = 10 resto 1 10/2 = 5 resto 0 5/2 = 2 resto 1 2/2 = 1 resto 0 1/2 = 0 resto 1 Leggendo i resti dal basso verso l’alto (in quanto si ottengono a partire dalla cifra meno significativa, l’unità), si ha che rappresentazione binaria del numero è

11 Conversione dalla base 2 alla base 10
Sia cm cm-1cm-2 … c1c0 un numero rappresentato in base 2, usiamo: c0 x c1 x c2 x … + cm-1 x 2m cm x 2m = N Esempio: 1 x x x x x x 25 + 1 x x x 28 = 345

12 Altri basi: ottale, esadecimale
Sistema ottale Utilizza una notazione posizionale basata su otto cifre (0,1,…,7) e sulle potenze di 8 Esempio: 1038 = 1 x x x 80 = 67 Sistema esadecimale Utilizza una notazione posizionale basata su sedici cifre (0,1,…,9,A,B,C,D,E,F) e sulle potenze di 16 Esempio: = 1 x x x 160 = 259 Esempio: AC416 = 10 x x x 160 = 2756

13 Operazioni su numeri binari
Addizione: 0 + 0 = 0 con riporto 0 0 + 1 = 1 con riporto 0 1 + 0 = 1 con riporto 0 1 + 1 = 0 con riporto 1 Esempi: 1 + 1 = 1 0 1 1 = = 1 1 =

14 Overflow (il sistema decimale)
Consideriamo la base dieci: con tre cifre decimali si possono rappresentare i numeri compresi tra 0 e 999 Il numero successivo (1000) richiede una quarta cifra che non abbiamo In questo caso si dice che si ha un problema di overflow; si genera un errore perché il numero 1000 non può essere rappresentato Poiché il numero 999 può essere scritto come (ossia ), possiamo enunciare la seguente regola: con N cifre decimali si possono rappresentare i numeri da 0 a 10N-1

15 Overflow (il sistema decimale)
Esempio: alla rappresentazione decimale si possono applicare le operazioni aritmetiche Vogliamo usare solo tre cifre decimale = = = = = = Tre cifre sono sufficiente Tre cifre non sono sufficiente: overflow

16 Overflow (il sistema binario)
Consideriamo la base due: con tre cifre binarie si possono rappresentare i numeri compresi tra 0 e 23-1 (ossia 8-1), possiamo enunciare la seguente regola: con N cifre binarie si possono rappresentare i numeri da 0 a 2N-1

17 Overflow (il sistema binario)
Esempio di overflow nel sistema binario dovuto a operazioni aritmetiche: = (in sistema decimale) abbiamo usato solo un cifre decimale per il risulto Ricordiamo: 510 = 1012 , 410 = 1002 Errore: overflow (non può essere codificato 910 = con tre bit) 1 0 0 = (in sistema binario)

18 Rappresentazione dei numeri
In realtà, una semplice codifica binaria come quella discussa fino ad ora non è sufficiente, per due motivi: numeri negativi numeri con la virgola Per questi numeri vengono utilizzate delle rappresentazioni differenti

19 Codifica dell’informazione
Quanti bit si devono utilizzare per rappresentare 300 simboli? Quanti byte occupa la parola “psicologia” se la si codifica utilizzando il codice ASCII? Dati 12 bit per la codifica, quante informazioni distinte si possono rappresentare?

20 Codifica delle immagini
Quanti byte occupa un’immagine di 100 x 100 pixel in bianco e nero? Quanti byte occupa un’immagine di 100 x 100 pixel a 256 colori? Se un’immagine a 16,7 milioni di colori occupa 2400 byte, da quanti pixel sarà composta?

21 Codifica dei suoni Quanto spazio occupa un suono della duranta di 10 secondi campionato a 100 Hz (100 campioni al secondo), in cui ogni campione occupa 4 byte?

22 Codifica dei numeri Codificare il numero nella corrispondente rappresentazione binaria. Ordinare in modo crescente i sequente numeri: , 128 , ,

23 Strutturazione logica dei dati: i file
Informazione più complesse possono essere composte a partire da informazioni elementari Esempio di una banca (Console e Ribaudo) Supponiamo di voler mantenere all’interno di un computer tutte le informazioni riguardanti i clienti Per ogni cliente dovremo registrare Il cognome Il nome L’indirizzo Il numero di conto La disponibilità sul conto La foto

24 Strutturazione logica dei dati: i file
I dati riguardanti ciascun cliente devono essere raggruppati, mentre i dati riguardanti clienti diversi devono essere mantenuti separati tra di loro Le informazioni devono essere organizzate in modo tale che il loro reperimento e il loro uso risultino semplici È necessario introdurre dei meccanismi per la strutturazione dei dati, costruendo strutture di codifica delle informazioni composte

25 Strutturazione logica dei dati: i file
Per l’esempio della banca Tutte le informazioni riguardanti un cliente possono essere viste come un blocco le cui componenti possono eventualmente essere analizzate independentemente

26 File, record e campi Un file è un meccanismo di strutturazione delle informazioni che permette di aggregare informazioni elementari in strutture più complessse Un file può essere definito introducendo i concetti di campo e record

27 File, record e campi Un campo è costituito da un insieme di byte
Serve per codificare una singola informazione che può essere: numerico alfabetica o alfanumerico un’immagine o un suono Un record è constituito da un insieme di campi logicamente correlati tra di loro (quindi è un insieme di byte) Un file è costituito da una sequenza di record

28 Un campo è costituito da un insieme di byte
file record campo campo campo Un campo è costituito da un insieme di byte Un record è constituito da un insieme di campi logicamente correlati tra di loro quindi è un insieme di byte Un file è costituito da una sequenza di record

29 File, record e campi Nell’esempio della banca le informazioni relative ad un singolo cliente possono essere viste come un record i cui campi sono: Un campo alfabetico per il nome Un campo alfabetico per il cognome Un campo alfanumerico per l’indirizzo Un campo numerico per il numero del conto Un campo numerico per la disponibilità sul conto Un campo immagine per la foto Le informazioni riguardanti la banca possono essere viste come un file costituito da un insieme di record, uno per ogni cliente

30 File, record e campi Un aspetto importante riguarda la lungezza dei record Vi sono due possibilità: file con record a lunghezza costante file con record a lunghezza variabile

31 Record a lunghezza costante
Solo per comodità, possiamo rappresentare graficamente un file con record a lunghezza costante come una tabella 114561 513,89 Massimiliano Rossi Via Milano 151 271564 7000,14 Cristina Bianchi Corso Venezia 1 102574 13,67 Elena 143256 1208,90 Ada Bo Via Po 1 Per definire un file con record a lunghezza costante occorre precisare il numero di byte destinati a ciascun campo

32 Record a lunghezza costante
La scelta di avere file con record a lunghezza costante presenta due svantaggi: è difficile stimare a priori la dimensione di ciascun campo nella maggior parte dei casi, l’informazione che deve essere memorizzata all’interno di un campo occupa meno spazio di quello a disposizione L’alternativa alla stabilire a priori le dimensioni dei campi è quella di avere campi a dimensione variabile

33 Record a lunghezza variabile
114561 271564 102574 143256 513,89 7000,14 13,67 1208,90 Massimiliano Cristina Elena Ada Rossi Bo Bianchi Corso Venezia 1 Via Po 1 Via Milano 151 Nel caso di campi a dimensione variabile sorge tuttavia il problema di separare le informazioni tra di loro

34 Struttura fisica di un file
Sebbene abbiamo usato una struttura a tabella per discrevere logicamente le infoirmazioni contenute in un file è importante notare che un file è una struttura lineare record1 record2 record 3 … Questo è anche il modo in cui un file viene memorizzato fisicamente nella memoria di un elaboratore

35 Struttura fisica di un file
Nel caso di campi, e quindi di record con dimensione variabili, è necessario introdurre dei caratteri speciali per separare le varie informazioni Per esempio, “&” per separare i record e “#” per separare i campi …& #513,89#Massimiliano#Rossi#Via Milano 151&271564#7000,14#Cristina#Bianchi#Corso Venezia 1&… I separatori “&” e “#” non sono necessari nel caso di file con campi a dimensioni costanti

36 Struttura fisica di un file
Un altro aspetto fondamentale riguarda il problema del riparimento delle informazioni I dati che vengono memorizzati in un file devono poter essere letti e modificati I principali metodi di accesso sono accesso sequenziale accesso diretto accesso con chiave

37 I file ad accesso sequenziale
La ricerca dei record avviene sempre a partire dall’inizio del file, leggendo tutti i record uno dopo l’altro, fino a quando non si arriva a quello disiderato Esempio: supponiamo di voler leggere i dati sul cliente “Bianchi” Dobbiamo leggere tutte le informazioni fino ad arrivare al cognome cercato …& #513,89#Massimiliano#Rossi#Via Milano 151&271564#7000,14#Cristina#Bianchi#Corso Venezia 1&… Questo metodo di accesso non è efficiente perché ogni volta la ricerca viene effettuata a partire dall’inizio del file

38 I file ad accesso diretto
L’ideale, dal punto di vista delle velocità di accesso, sarebbe di poter accedere direttamente ad un record senza dover considerare tutti quelli precedenti Per fare questo è necessario conoscere esattamente il punto del file (sequenza di record) in cui inizia il record cui si è interessati

39 I file ad accesso diretto
Il punto di inizio di un record all’interno di un file prende il nome di indirizzo di record Record n-1 Campo 5 Campo 4 Campo 3 Campo 2 Campo1 Record n Record n+1 L’indirizzo di record n L’indirizzo di record n+1 Un file è un sequenza di byte e l’indirizzo di un byte è il numero che corrisponde alla posizione del byte nella sequenza Il primo byte ha indirizzo 0, il seconda ha indirizzo 1, ecc. L’indirizzo di un campo è quindi l’indirizzo del primo byte del campo L’indirizzo di un record è l’indirizzo del primo campo del record

40 I file ad accesso diretto
Se l’indirizzo di un record è noto, è possibile posizionarsi direttamente in quel punto ed accedere all’informazione in modo diretto, senza considerare le informazione precedenti In questo caso il tempo necessario per accedere a un dato non depende dal punto in cui esso è memorizzato nella sequenza

41 I file ad accesso diretto
Nel caso di record a lunghezza costante: È possibile calcolare il punto di inizio di ciascun record, anche senza conoscerne direttamente l’indirizzo Esempio: supponiamo di avere un file con record lunghi 50 byte I record inizieranno rispettivamente in posizione 0, 50, 100, 150,… nel file In generale, dato un file con record lunghi M byte, per recuperare il record in n-esima posizione ci si dovrà posizionare al byte che si trova in posizione M*(n-1)

42 I file ad accesso diretto
Nel caso di record a lunghezza variabile: Non è possibile calcolare il punto di inizio di un record Quindi non è possibile usare l’accesso diretto

43 File con accesso a chiave
La possibilità di effettuare l’accesso ai record in modo veloce è legata alla conoscenza degli indirizzi dei record stessi Per poter realizzare l’accesso in modo veloce si può pensare di mantenere le informazioni sugli indirizzi al di fuori del file Per fare questo è necessario avere un meccanismo per identificare i record in modo univoco e per ricordare l’indirizzo di ognuno di essi

44 File con accesso a chiave
L’idea che sta alla base del metodo di accesso con chiave è la seguente Si deve individuare un campo, detto campo chiave, che è presente in tutti i record e fornisce un riferimento unico ai record stessi Non vi devono essere due record con lo stesso valore del campo chiave

45 File con accesso a chiave
Esempio della banca: la chiave può essere il numero di conto Campo chiave 114561 271564 102574 143256 513,89 7000,14 13,67 1208,90 Massimiliano Cristina Elena Ada Rossi Bo Bianchi Corso Venezia 1 Via Po 1 Via Milano 151

46 File con accesso a chiave
Si costruisce un nuovo file che prende il nome di file delle chiavi che è costituito da record a dimensione costante formati da due campi un campo per contenere il valore della chiave un campo per contenere l’indirizzo del record all’interno del file Il file delle chiavi ha tanti record quanti sono i record del file originario

47 File con accesso a chiave
Esempio della banca: la tabella delle chiavi può essere organizzata come un insieme di record costituiti da una chiave, ossia il numero di conto l’indirizzo del record corrispondente nel file delle informazioni

48 File con accesso a chiave
Indirizzo del record 102574 222 114561 135 143265 259 271564 189 File delle chiavi File delle informazioni 114561 271564 102574 143256 513,89 7000,14 13,67 1208,90 Massimiliano Cristina Elena Ada Rossi Bo Bianchi Corso Venezia 1 Via Po 1 Via Milano 151 135 189 222 259

49 File con accesso a chiave
Dato un numero di conto corrente, l’accesso ai dati del record corrispondente nel file delle informazioni avverrà in due passi Prima si accede alla tabella delle chiavi, si cerca il numero di conto, e si legge l’indirizzo del record corrispondente nel file delle informazioni Quindi si accede in modo diretto al record nel file delle informazioni utilizzando il suo indirizzo

50 File con accesso a chiave
L’accesso con chiave può essere visto come la combinazione di due accessi uno alla tabella di chiavi (che ha record a dimensione costante) uno al file delle informazioni, una volta noto l’indrizzo letto dalla tabella delle chiavi (accesso diretto) L’indirizzo? L’informazione?

51 File con accesso a chiave
Questa tecnica presenta tuttavia uno svantaggio dovuto alla necessità di memorizzare anche la tabella delle chiavi, che può talvolta avere delle dimensioni molto grandi

52 File con accesso a chiave
È necessario scegliere come chiave un campo che assume valori sempre diversi per non creare delle ambiguità Possibilità di utilizzare più di un campo per la chiave Esempio: Nome, cognome e indirizzo Esistono delle tecniche che consentono di velocizzare la ricerca all’interno del file delle chiavi

53 File, record e campi La definizione di file appena data è la più generale possibile In realtà, si possono distinguere due diversi tipi di file: file strutturati che sono effettivamente sequenze di record file di testo in cui l’informazione è semplicamente una sequenza di caratteri (sequenza di byte) Si può pensare che il record coincida con il singolo carattere e non sia quindi possibile suddividerlo ulteriormente in campi Nel seguito concentreremo sul primo tipo di file


Scaricare ppt "Codifica dei numeri Il codice ASCII consente di codificare le cifre decimali da “0” a “9” fornendo in questo modo una rappresentazione dei numeri Per esempio:"

Presentazioni simili


Annunci Google