Title: Operazioni su numeri binari
1Operazioni 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
2Overflow (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
3Overflow (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
4Overflow (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
5Overflow (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)
6Rappresentazione 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 -
7Codifica dellinformazione
- 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? -
8Codifica delle immagini
- Quanti byte occupa unimmagine di 100 x 100 pixel
in bianco e nero? - Quanti byte occupa unimmagine di 100 x 100 pixel
a 256 colori? - Se unimmagine a 16,7 milioni di colori occupa
2400 byte, da quanti pixel sarà composta?
9Codifica 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?
10Codifica dei numeri
- Codificare il numero 13210 nella corrispondente
rappresentazione binaria. - Ordinare in modo crescente i sequente numeri
10410 , 128 , 1000100002 , 1001110
11Strutturazione 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 allinterno di un
computer tutte le informazioni riguardanti i
clienti - Per ogni cliente dovremo registrare
- Il cognome
- Il nome
- Lindirizzo
- Il numero di conto
- La disponibilità sul conto
- La foto
12Strutturazione 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
13Strutturazione logica dei dati i file
- Per lesempio della banca
- Tutte le informazioni riguardanti un cliente
possono essere viste come un blocco le cui
componenti possono eventualmente essere
analizzate independentemente
14File, 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
15File, record e campi
- Un campo è costituito da un insieme di byte
- Serve per codificare una singola informazione che
può essere - numerico
- alfabetica o alfanumerico
- unimmagine 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
16 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
- quindi è un insieme di byte
17File, record e campi
- Nellesempio 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 lindirizzo
- 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
18File, 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
19Record 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 Rossi Via Milano 151
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
20Record 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, linformazione che
deve essere memorizzata allinterno di un campo
occupa meno spazio di quello a disposizione - Lalternativa alla stabilire a priori le
dimensioni dei campi è quella di avere campi a
dimensione variabile
21Record a lunghezza variabile
- Nel caso di campi a dimensione variabile sorge
tuttavia il problema di separare le informazioni
tra di loro
22Struttura 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
23Struttura 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 - 1146561513,89MassimilianoRossiVia Milano
1512715647000,14CristinaBianchiCorso Venezia
1 - I separatori e non sono necessari nel
caso di file con campi a dimensioni costanti
24Struttura fisica di un file
- Un altro aspetto fondamentale riguarda il
problema del reperimento 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
25I file ad accesso sequenziale
- La ricerca dei record avviene sempre a partire
dallinizio del file, leggendo tutti i record uno
dopo laltro, 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 - 1146561513,89MassimilianoRossiVia Milano
1512715647000,14CristinaBianchiCorso Venezia
1 - Questo metodo di accesso non è efficiente perché
ogni volta la ricerca viene effettuata a partire
dallinizio del file
26I file ad accesso diretto
- Lideale, 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
27I file ad accesso diretto
- Il punto di inizio di un record allinterno di un
file prende il nome di indirizzo di record
- Un file è un sequenza di byte e lindirizzo 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. - Lindirizzo di un campo è quindi lindirizzo del
primo byte del campo - Lindirizzo di un record è lindirizzo del primo
campo del record
28I file ad accesso diretto
- Se lindirizzo di un record è noto, è possibile
posizionarsi direttamente in quel punto ed
accedere allinformazione 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
29I file ad accesso diretto
- Nel caso di record a lunghezza costante
- È possibile calcolare il punto di inizio di
ciascun record, anche senza conoscerne
direttamente lindirizzo - 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)
30I file ad accesso diretto
- Nel caso di record a lunghezza costante
- Per esempio file con record a lunghi 10 byte
(M10) - Per recuperare il record in secondo posizione ci
si dovrà posizionare al byte che si trova in
posizione 10 ( M(n-1) 10(2-1) ) - Per recuperare il record in quarto posizione ci
si dovrà posizionare al byte che si trova in
posizione 30 ( M(n-1) 10(4-1) )
0 1 2
9 10
20
30
10 byte
10 byte
10 byte
10 byte
31I 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 laccesso diretto