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:

Slides:



Advertisements
Presentazioni simili
BIT e BYTE il linguaggio del computer
Advertisements

Rappresentazioni numeriche
La Comunicazione Bisogno insopprimibile nella vita di ognuno di noi.
Informatica Generale Susanna Pelagatti
Gestione della memoria centrale
Unità D2 Archivi e file.
Le Informazioni e la loro Rappresentazione nei calcolatori
Trasmissione delle informazioni
Vincenza Ferrara dicembre 2007 Fondamenti di Matematica e Informatica Laboratorio Informatica I anno a.a
Hash Tables Indirizzamento diretto Tabelle Hash Risoluzioni di collisioni Indirizzamento aperto.
Sistema di numerazione binario
Indirizzi delle variabili A ogni variabile sono associati tre concetti fondamentali: il valore memorizzato; il tipo dati di appartenenza; lindirizzo. Il.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Rappresentazione dellinformazione su calcolatore Anno Accademico 2009/2010.
Corso di Informatica per Giurisprudenza
Il Linguaggio Macchina
La rappresentazione dellinformazione. 7-2 Digitalizzare linformazione Digitalizzare: rappresentare linformazione per mezzo di cifre (ad es: da 0 a 9)
Gli esseri viventi ricevono informazione direttamente dal mondo circostante e dai propri simili attraverso i sensi (percezione). La percezione, tuttavia,
Codifica binaria Rappresentazione di numeri
Programma del corso Dati e loro rappresentazione Architettura di un calcolatore Sistemi operativi Linguaggi di programmazione Applicativi: - fogli elettronici.
Labortaorio informatica 2003 Prof. Giovanni Raho 1 INFORMATICA Termini e concetti principali.
RAPPRESENTAZIONE DELL’INFORMAZIONE
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori (Reti Locali, Internet)
RAPPRESENTAZIONE DELL'INFORMAZIONE
Sistemi di numerazione
I NUMERI INTERI Il secondo insieme che prenderemo in esame è quello dei numeri interi. Esso si indica con la lettera Z (dal tedesco Zahl = numero) e i.
Architettura del calcolatore
Che cos’è un sistema di numerazione?
CONCETTI DI BASE 1.0 FONDAMENTI 1.1 HARDWARE 1.2 SOFTWARE 1.3 RETI
Codifica dei dati in un elaboratore elettronico
Programma di Informatica Classi Prime
I dispositivi di input La tastiera: il principale strumento di input Ogni volta che l’utente digita un tasto, la tastiera “avverte” il processore che un.
Docente: Jeremy Sproston
I computer vengono utilizzati per automatizzare la soluzione di problemi di varia natura trattando le informazioni in entrata (DATI) eseguendo gli opportuni.
DIGITALIAZZAZIONE Di Alessio.
GLI ARCHIVI SEQUENZIALI
La rappresentazione delle informazioni in un computer Seconda parte.
La rappresentazione delle informazioni in un computer
Implementazione di dizionari Problema del dizionario dinamico Scegliere una struttura dati in cui memorizzare dei record con un campo key e alcuni altri.
Rappresentazione dell’informazione nel calcolatore.
Rappresentazione Dati Codificare informazioni nel Computer
Informatica Docente : Jeremy Sproston Orario: Gruppo 1: (gli studenti i cui cognomi iniziano con la lettera A fino alla lettera L (inclusi)) Lunedì ore.
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Informatica Lezione 3 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Informatica Lezione 1 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
INFORmazione autoMATICA
Rappresentazione delle informazioni negli elaboratori
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Codifica binaria dell’informazione Marco D. Santambrogio – Ver. aggiornata al 11.
Rappresentazione della Informazione
Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Fondamenti di Informatica
La Rappresentazione dell’Informazione
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Rappresentazione dell'informazione
La codifica dei numeri.
Conversione binario-ottale/esadecimale
Informatica Lezione 3 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Problemi, algoritmi e programmazione
Codifica binaria dell’informazione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Codifica binaria dell’informazione Marco D. Santambrogio – Ver. aggiornata al 11.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Codifica binaria dell’informazione Marco D. Santambrogio – Ver. aggiornata al 24.
I sistemi di numerazione
Informatica Problemi e algoritmi. una situazione che pone delle domande cui si devono dare risposte. Col termine problema o situazione problematica s’indica.
Elementi di calcolo combinatorio e di probabilità. Prof. Ugo Morra Liceo scientifico V. Vecchi di Trani Lezione di potenziamento delle abilità in matematica.
La numerazione ottale. Il sistema di numerazione ottale ha ampio utilizzo in informatica E’ un sistema di numerazione posizionale La base è 8 Il sistema.
Un codice è costituito da un alfabeto (insieme di simboli) parole (combinazioni di simboli validi) nel computer tutti i codici usano come alfabeto le cifre.
© 2015 Giorgio Porcu - Aggiornamennto 09/12/2015 I STITUTO T ECNICO SECONDO BIENNIO T ECNOLOGIE E P ROGETTAZIONE Rappresentazione dell’ Informazione Conversioni.
Rappresentazione delle informazioni negli elaboratori L’entità minima di informazione all’interno di un elaboratore prende il nome di bit (binary digit.
Transcript della presentazione:

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: 00110011 00110010 00110100 2 4 Ma questa rappresentazione non è efficiente e soprattutto non è adatta per eseguire le operazioni aritmetiche sui numeri

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 + 2 decine + 4 unità 324 = 3 x 100 + 2 x 10 + 4 x 1 324 = 3 x 102 + 2 x 101 + 4 x 100

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 100 + (c0 unità) c1 x 101 + (c1 decine) c2 x 102 + (c2 centinaia) … cn-1 x 10n-1 + cn x 10n La cifra meno siginificativa La cifra più siginificativa

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”

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

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

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

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

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 1 1 x 22 = 6 0 x 20 + 1 x 21 + 1 x 22 = 1 x 20 + 1 x 21 con resto 0 2 1 x 20 + 1 x 21 = 1 x 20 con resto 1 1 x 20 = 0 con resto 1

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 34510 è 1010110012

Conversione dalla base 2 alla base 10 Sia cm cm-1cm-2 … c1c0 un numero rappresentato in base 2, usiamo: c0 x 20 + c1 x 21 + c2 x 22 + … + cm-1 x 2m-1 + cm x 2m = N Esempio: 1010110012 1 x 20 + 0 x 21 + 0 x 22 + 1 x 23 + 1 x 24 + 0 x 25 + 1 x 26 + 1 x 27 + 1 x 28 = 1 + 8 + 16 + 64 + 256 345

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 82 + 0 x 81 + 3 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: 10316 = 1 x 162 + 0 x 161 + 3 x 160 = 259 Esempio: AC416 = 10 x 162 + 12 x 161 + 4 x 160 = 2756

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 0 1 + 1 1 = 1 0 0 0 1 0 1 1 0 1 0 1 + 1 0 0 0 1 1 0 = 1 1 1 1 1 0 1 1 1 1 1 + 1 1 = 1 0 1 0

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 103-1 (ossia 1000-1), possiamo enunciare la seguente regola: con N cifre decimali si possono rappresentare i numeri da 0 a 10N-1

Overflow (il sistema decimale) Esempio: alla rappresentazione decimale si possono applicare le operazioni aritmetiche Vogliamo usare solo tre cifre decimale 325 + 158 = 483 6 + 98 = 104 12 + 45 = 57 678 + 421 = 1099 560 + 923 = 1483 999 + 1 = 1000 Tre cifre sono sufficiente Tre cifre non sono sufficiente: overflow

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

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

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

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?

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?

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?

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

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

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

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

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

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

Un campo è costituito da un insieme di byte file record campo campo campo 00101100 00111101 10100000 11101100 … 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

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

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

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

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

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

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

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 …&1146561#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

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

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 …&1146561#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

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

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

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

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)

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

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

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

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

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

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

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

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

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?

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

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

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