Sei sulla pagina 1di 82

Fondamenti di Informatica

Introduzione

Prof. E. Clementini
Definizione di informatica

“L’informatica è la scienza che si occupa della


rappresentazione e dell’elaborazione
dell’informazione”

06/03/2018 Fondamenti di Informatica - Prof. Clementini 2


Bisogna capire qual'è la
Rappresentazione …
struttura giusta per ottenere
la rappresentazione di un
determinato elemento che si
vuole descrivere

realtà rappresentazione

strutture dati

06/03/2018 Fondamenti di Informatica - Prof. Clementini 3


Elaborazione …
Una volta che si ha la
struttura giusta per la
rappresentazione, si
è pronti a ricevere dei
dati in ingresso che
vengono eleaborati
da un processore per dati uscita
eseguire il processo e dati ingresso
ottenere l'obiettivo processo
preposto.

processore

06/03/2018 Fondamenti di Informatica - Prof. Clementini 4


Dati – Informazioni - Conoscenza

Dati: simboli che rappresentano fatti

Informazioni: rappresentazione dei dati, organizzati in


modo da essere significativi per l'uomo

Conoscenza: insieme di informazioni, organizzate in


modo da accrescere comprensione e competenze

06/03/2018 Fondamenti di Informatica - Prof. Clementini 5


Esempio di rappresentazione
• temperature minime e massime, riferite a una
certa data, delle città italiane

Città Temp. Min. Temp. Max.


1 Torino 6 13
2 Milano 4 12
3 Genova 8 14
4 Bologna 5 10
5 Firenze 5 12
... ….. … …

06/03/2018 Fondamenti di Informatica - Prof. Clementini 6


Esempio di elaborazione
• Trovare la città con la temperatura massima più elevata

Temp. Temp.
Città
Min. Max.
1 Torino 6 13
2 Milano 4 12
3 Genova 8 14
4 Bologna 5 10
5 Firenze 5 12
... ….. … …

06/03/2018 Fondamenti di Informatica - Prof. Clementini 7


Il processore
• Comprende la rappresentazione
• Esegue i passi elementari

• Processore dedicato
• Processore programmabile

06/03/2018 Fondamenti di Informatica - Prof. Clementini 8


Processi e programmi

Una sequenza di istruzioni (passi


elementari) costituisce un
programma. Il programma quando
la macchina inizia a lavorare si
trasforma in un processo (evolve),
ovvero un programma in
esecuzione. formando la fase
dinamica in cui più azioni ovvero
l'esecuzioni delle istruzioni
formano un processo. Mentre nella
fase statica si scrive il programma
e una volta finito si determina il
processo.

06/03/2018 Fondamenti di Informatica - Prof. Clementini 9


Programmatore e utente
• Programmatore
– trova le rappresentazioni adeguate
– trovare i procedimenti risolutivi, scrivendo programmi
– nella fase dinamica verificare il buon funzionamento del
programma
• Utente
– esegue il programma per risolvere un suo problema di
interesse
– inserisce i dati di ingresso e si aspetta di vedere i dati di uscita
– interviene solo in fase dinamica
– non ha alcun interesse per il procedimento che utilizza il
processore per risolvere il problema
06/03/2018 Fondamenti di Informatica - Prof. Clementini 10
Algoritmo - definizione

“L’algoritmo è una sequenza di passi


elementari che in un periodo finito di tempo
porta sempre alla risoluzione di un problema”

06/03/2018 Fondamenti di Informatica - Prof. Clementini 11


Gli algoritmi
• L’algoritmo è indipendente dal calcolatore
• il procedimento risolutivo termina in un tempo finito
• … porta “sempre” alla risoluzione …: per qualsiasi insieme di
dati in ingresso relativi al problema
• Queste proprietà esprimono la correttezza di un algoritmo

L'algoritmo è un processo quindi è


indipendente dal calcolatore, il tempo di
esecuzione deve portare la soluzione in un
tempo finito qualsiasi sia l'insieme di dati in
ingresso relativi al problema.

06/03/2018 Fondamenti di Informatica - Prof. Clementini 12


Passi elementari
• … sequenza di passi elementari …:
– il destinatario dell’istruzione deve essere in grado di eseguirla senza
ulteriori specifiche

06/03/2018 Fondamenti di Informatica - Prof. Clementini 13


Problema – algoritmo - programma
All'apice c'è il problema con sotto i vari
algoritmi risolutivi i quali vengono
codificati da programmi diversi per un
determinato algoritmo, quindi si hanno
diversi programmi a seconda
dell'algoritmo creato per la risoluzione
del problema.

06/03/2018 Fondamenti di Informatica - Prof. Clementini 14


Efficienza degli algoritmi
• più o meno efficienti a seconda delle risorse che usano
• tempo di esecuzione (efficienza temporale)
• spazio di memoria necessario (efficienza spaziale)
• l’efficienza degli algoritmi si misura con funzioni che dipendono
dalla dimensione dei dati in ingresso
Un aspetto che differenziano gli algoritmi è l'efficienza, ovvero lo spreco di risorse. Per efficienza di risorse si intende
l'efficienza temporale, ovvero al diminuire del tempo di esecuzione aumenta l'efficienza dell'algoritmo, efficienza
spaziale, cioè lo spazio di memoria (finita) necessario per svolgere il programma, tanto minore è lo spazio di
memoria utilizzato maggiore è l'efficienza dell'algoritmo, molto spesso i due aspetti sono comunicanti ovvero che
all'aumentare dello spazio di memoria determina una diminuzione del tempo di esecuzione. Un algoritmo che
necessita una memoria maggiore per svolgere un programma è meno efficiente rispetto ad un altro che ne necessita
di meno (questo dipende dalla struttura dati
06/03/2018
che si utilizza).
Fondamenti di Informatica - Prof. Clementini 15
Funzione t(n)
• Se indichiamo con n una grandezza proporzionale ai dati di ingresso,
l’efficienza temporale sarà misurata con funzioni t(n) che esprimono il
tempo di esecuzione in funzione di n.

06/03/2018 Fondamenti di Informatica - Prof. Clementini 16


Esempio
• Trovare un numero di telefono nell’elenco di una città
• Algoritmo 1:
– Leggere in sequenza tutti i cognomi e nomi fino a fermarsi in
corrispondenza della persona desiderata (se è nell’elenco)
– Leggere il numero di telefono a fianco

06/03/2018 Fondamenti di Informatica - Prof. Clementini 17


Esempio
• Trovare un numero di telefono nell’elenco di una città
• Algoritmo 2:
– Aprire circa a metà l’elenco e
• vedere se si trova il cognome e nome cercato
• oppure andare nella prima parte se esso sta prima in ordine alfabetico
• oppure andare nella seconda parte se esso sta dopo in ordine alfabetico
– Ripetere il procedimento nella parte considerata

06/03/2018 Fondamenti di Informatica - Prof. Clementini 18


Esempio
• L’algoritmo 2 è più veloce dell’algoritmo 1
• Quanto è più veloce?
• Si può calcolare analiticamente: se impieghiamo 1
secondo a leggere un nome e se l’elenco contiene 1
milione di abbonati
– con Algoritmo 1, impieghiamo mediamente 500.000
secondi = circa 139 ore = circa 5 giorni e mezzo
– con Algoritmo 2, impieghiamo un numero di controlli pari al
numero di divisioni per due che sono necessarie, circa 19
secondi

06/03/2018 Fondamenti di Informatica - Prof. Clementini 19


Esempio
• Conclusione:
– L’algoritmo 2 è MOLTO più veloce dell’algoritmo 1.

06/03/2018 Fondamenti di Informatica - Prof. Clementini 20


Traduzione algoritmo - programma
• si applicano le regole sintattiche del linguaggio
• allo stesso algoritmo possono corrispondere diversi programmi
• essi si differenziano per aspetti implementativi di minore
importanza

06/03/2018 Fondamenti di Informatica - Prof. Clementini 21


Linguaggi

dati dati
ingresso uscita
calcolatore
programmi

06/03/2018 Fondamenti di Informatica - Prof. Clementini 22


Linguaggi
• Tutti i linguaggi sono costituiti da:
– Vocabolario
– Sintassi (o grammatica)
– Semantica

06/03/2018 Fondamenti di Informatica - Prof. Clementini 23


Linguaggi - vocabolario
• Vocabolario
– L’insieme degli elementi lessicali che costituiscono il linguaggio

• Esempio in italiano: ‘tavolo’, ‘rosso’, ‘il’, … tutte le parole del


nostro vocabolario

06/03/2018 Fondamenti di Informatica - Prof. Clementini 24


Linguaggi - sintassi
• Sintassi
– L’insieme delle regole che consentono di combinare gli elementi
lessicali in frasi sintatticamente corrette
• Esempio di frase corretta in italiano:
– “La pioggia bagna la strada”
– Tale frase rispetta tutte le regole grammaticali
• Esempio di frase scorretta:
– “Corrono finestra perché il”
– Tale frase non rispetta le regole grammaticali

06/03/2018 Fondamenti di Informatica - Prof. Clementini 25


Linguaggi - semantica
• Esistono frasi corrette sintatticamente che non hanno senso in
un linguaggio?
• “Idee verdi senza colore dormono furiosamente” (Chomsky)
• Il senso è dato dalla semantica
• La semantica associa una frase del linguaggio alla realtà
rappresentata

06/03/2018 Fondamenti di Informatica - Prof. Clementini 26


Linguaggi di programmazione
• Una frase ben fatta (sintatticamente corretta) è un programma
• Esistono strumenti automatici per controllare se un programma
rispetta le regole sintattiche
• Un programma è semanticamente corretto se implementa
correttamente un algoritmo risolutivo (fornisce la soluzione al
problema)
• Non esistono strumenti automatici per verificare se un programma
è semanticamente corretto
• Per verificare se un programma funziona, viene testato con un
insieme significativo di dati in ingresso

06/03/2018 Fondamenti di Informatica - Prof. Clementini 27


Categorie di linguaggi
• Linguaggi a basso livello
• Linguaggi macchina
• Linguaggi assemblativi

• Linguaggi ad alto livello


• sono indipendenti dalla particolare macchina
• sono più vicini al modo di ragionare degli esseri umani

06/03/2018 Fondamenti di Informatica - Prof. Clementini 28


Linguaggi - traduttori

• Compilatori

• Interpreti

06/03/2018 Fondamenti di Informatica - Prof. Clementini 29


Compilatori

dati di
ingresso

scrittura codice codice codice programma in


compilazione collegamento
programma sorgente oggetto eseguibile esecuzione

editor compilatore linker dati di


uscita
errori di compilazione

errori di esecuzione
Per codice sorgente si intende il testo scritto nel linguaggio di programmazione. Il
compilatore riconosce gli errori di compilazione e si blocca non andando più avanti e
ritornando all'editor per correggere gli errori. Se non si hanno più errori si produce un
codice oggetto collegandolo ad un modulo diverso (dalla parte software ad un'altra
parte). Un esempio di errore di esecuzione è la divisione per 0 (con un suo codice di
errore) ritornando direttamente all'editor.

06/03/2018 Fondamenti di Informatica - Prof. Clementini 30


Interpreti
Non c'è una distinzione tra compilazione ed esecuzione

scrittura codice interpretazione


programma sorgente + esecuzione

editor interprete

errori

06/03/2018 Fondamenti di Informatica - Prof. Clementini 31


Architettura del calcolatore
• Modello di von Neumann (1945)
– Macchina sequenziale e programmabile
– Programmi e dati sono conservati in memoria (M)
– Una unità di controllo e sequenziamento (UCS) presiede al
funzionamento di tutta l’architettura ed esegue in sequenza le
istruzioni del programma
– Unità aritmetica e logica (ALU) per effettuare i calcoli
– Unità di ingresso (I) e uscita (O)

06/03/2018 Fondamenti di Informatica - Prof. Clementini 32


Architettura del calcolatore

I M O

UCS

ALU

06/03/2018 Fondamenti di Informatica - Prof. Clementini 33


Sistemi di numerazione
• le cifre

• le regole per costruire i numeri

06/03/2018 Fondamenti di Informatica - Prof. Clementini 34


Sistemi di numerazione
• sistemi non posizionali

• sistemi posizionali

06/03/2018 Fondamenti di Informatica - Prof. Clementini 35


Sistemi di numerazione non posizionali
• i valori di ogni cifra non dipendono dalla posizione all’interno
del numero
• Es.: i numeri romani
• Cifre: I, V, X, L, C, D, M
• Regole:
• III = 3
• IV = 4
• Etc.

06/03/2018 Fondamenti di Informatica - Prof. Clementini 36


Sistemi di numerazione posizionali
• i valori di ogni cifra dipendono dalla posizione all’interno del
numero
• Es.: la numerazione araba
• Cifre: 0, 1, 2, …, 9
• Un numero di n cifre, con c0 cifra meno significativa e cn-1 cifra
più significativa:

06/03/2018 Fondamenti di Informatica - Prof. Clementini 37


Sistemi posizionali a base fissa
• Valore del numero:

• base fissa, i pesi sono pari alle potenze di una


certa base b: pi  b i

• Valore del numero:


V ( X )  cn1  b n1  cn2  b n2   c1  b1  c0  b 0
n 1
= i  i
( c b )
i 0
06/03/2018 Fondamenti di Informatica - Prof. Clementini 38
Sistemi posizionali a base fissa
• Cifre in numero pari alla base
• b = 10, sistema decimale
– cifre da 0 a 9
• b = 2, sistema binario
– cifre 0 e 1
• b = 8, sistema ottale
– cifre da 0 a 7
• b = 16, sistema esadecimale
– 16 cifre da 0 a 9 e da A a F

06/03/2018 Fondamenti di Informatica - Prof. Clementini 39


Conversione da base qualsiasi a base 10
• applicazione della formula per il valore di un
numero:
n 1
 i )
( c  b i

i 0

• Esempio: Dato il numero binario 1100102


1100102 = 1 25  1 24  0  23  0  22  1 21  0  20
= 5010

06/03/2018 Fondamenti di Informatica - Prof. Clementini 40


Conversione da base qualsiasi a base 10
• Esempio: Dato il numero esadecimale 4E16
4E16 = 4  16  14  16
1 0

= 7810

• Altri esempi: ….

06/03/2018 Fondamenti di Informatica - Prof. Clementini 41


Conversione da base 10 a base qualsiasi
• algoritmo delle divisioni successive
– Dato un numero in base 10 e la base di conversione,
– si divide il numero per la base, ottenendo un resto e un quoziente;
– finché il quoziente è diverso da zero si continua a dividere il
quoziente per la base;
– il risultato della conversione è dato da tutti i resti trovati presi in
ordine inverso.

06/03/2018 Fondamenti di Informatica - Prof. Clementini 42


Conversione da base 10 a base qualsiasi
• Esempio
50 2
0 25 2
1 12 2
0 6 2
0 3 2
1 1 2
1 0
• 5010 = 1100102
06/03/2018 Fondamenti di Informatica - Prof. Clementini 43
Conversione da base 10 a base qualsiasi
• Altri esempi

06/03/2018 Fondamenti di Informatica - Prof. Clementini 44


Intervallo numeri rappresentabili
• Quanti numeri sono rappresentabili con un fissato numero di
cifre n in una certa base b?
• Esempio: quanti numeri sono rappresentabili con 3 cifre in
base 10?
– 0…999
– Quindi, mille numeri = 103
• In generale, sono rappresentabili un numero di numeri pari a
bn
• Esempio: con 4 cifre in binario, rappresentiamo 24 = 16 numeri
06/03/2018 Fondamenti di Informatica - Prof. Clementini 45
Sistema binario
• bit: unità minima di memorizzazione
• Possiamo rappresentare in un bit due valori: 0 e 1
• byte: unità per misurare la memoria, corrisponde a 8 bit
• In un byte possiamo rappresentare 28 numeri

06/03/2018 Fondamenti di Informatica - Prof. Clementini 46


D B O H
Sistemi ottale e 0

esadecimale 1
2
• Sono una forma 3
compatta per 4

scrivere i numeri 5
6
binari, dato che
7
è molto facile 8
passare 9
direttamente 10
dalla base 2 a 11
basi potenze di 2 12
e viceversa 13
14
15
06/03/2018 Fondamenti di Informatica - Prof. Clementini 47
D B O H
Conversione rapida da base 0 0000 00 0
potenza di 2 a base 2 1 0001 01 1
2 0010 02 2
3 0011 03 3
• Passaggio da base 16 a 4 0100 04 4
base 2 5 0101 05 5
• si sostituisce ad ogni cifra 6 0110 06 6
esadecimale il 7 0111 07 7
corrispondente gruppo di 8 1000 10 8
quattro cifre binarie
9 1001 11 9
prese dalla tabella
10 1010 12 A
• Esempio, A816 =
11 1011 13 B
101010002
12 1100 14 C
• Esempio, … 13 1101 15 D
14 1110 16 E
15 1111 17 F
06/03/2018 Fondamenti di Informatica - Prof. Clementini 48
D B O H
Conversione rapida da base 0 0000 00 0
2 a base potenza di 2 1 0001 01 1
2 0010 02 2
• Passaggio da base 2 a base 16 3 0011 03 3
• dividiamo il numero binario in 4 0100 04 4
gruppi di quattro cifre a 5 0101 05 5
partire da destra, 6 0110 06 6
completando eventualmente
7 0111 07 7
a sinistra con degli zeri, e
sostituiamo ad ogni gruppo la 8 1000 10 8
cifra esadecimale presa in 9 1001 11 9
tabella 10 1010 12 A
• Esempio, 11 1011 13 B
1001100102 = 13216 12 1100 14 C
• Esempio, … 13 1101 15 D
14 1110 16 E
15 1111 17 F
06/03/2018 Fondamenti di Informatica - Prof. Clementini 49
D B O H
Conversione rapida da base 0 0000 00 0
potenza di 2 a base 2 1 0001 01 1
2 0010 02 2
3 0011 03 3
• Passaggio da base 8 a 4 0100 04 4
base 2 5 0101 05 5
• si sostituisce ad ogni cifra 6 0110 06 6
ottale il corrispondente 7 0111 07 7
gruppo di tre cifre binarie 8 1000 10 8
prese dalla tabella 9 1001 11 9
10 1010 12 A
• Esempio, 678 = 1101112
11 1011 13 B
• Esempio, … 12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
06/03/2018 Fondamenti di Informatica - Prof. Clementini 50
D B O H
Conversione rapida da base 0 0000 00 0
2 a base potenza di 2 1 0001 01 1
2 0010 02 2
• Passaggio da base 2 a base 3 0011 03 3
8 4 0100 04 4
• dividiamo il numero binario 5 0101 05 5
in gruppi di tre cifre a 6 0110 06 6
partire da destra, 7 0111 07 7
completando 8 1000 10 8
eventualmente a sinistra 9 1001 11 9
con degli zeri, e sostituiamo
10 1010 12 A
ad ogni gruppo la cifra
11 1011 13 B
ottale presa in tabella
12 1100 14 C
• Esempio,
13 1101 15 D
1001100102 = 4628
14 1110 16 E
• Esempio, … 15 1111 17 F
06/03/2018 Fondamenti di Informatica - Prof. Clementini 51
Rappresentazione dei numeri negativi
• rappresentazione in modulo e segno

• rappresentazione in complemento a due

06/03/2018 Fondamenti di Informatica - Prof. Clementini 52


Rappresentazione in modulo e segno
• codifica separatamente:
– il modulo in binario
– il segno positivo (+) o negativo (–) con un bit 0 oppure 1
• Esempio, 4 bit
– 3 bit per il modulo
– 1 bit per il segno
– Il numero -5 rappresentato con 4 bit è 1101
– Doppia rappresentazione per lo zero: 0000 oppure 1000
• Altri esempi
– ….

06/03/2018 Fondamenti di Informatica - Prof. Clementini 53


Rappresentazione in -7

modulo e segno -6
-5

• Esempio, 4 bit -4
-3
• Doppia -2
rappresentazione per -1
0
lo zero: 0000 oppure
0
1000 1
• Intervallo 2

rappresentabile con 3
4
n cifre: 5
–(2n-1 – 1) .. (2n-1 – 1) 6
7
06/03/2018 Fondamenti di Informatica - Prof. Clementini 54
Rappresentazione in -7 1111

modulo e segno -6 1110


-5 1101
-4 1100
• Esempio, 4 bit -3 1011
• Doppia -2 1010
-1 1001
rappresentazione per
0 1000
lo zero: 0000 oppure 0 0000
1000 1 0001

• Intervallo 2 0010
3 0011
rappresentabile con n 4 0100
cifre: 5 0101

–(2n-1 – 1) .. (2n-1 – 1) 6 0110


7 0111
06/03/2018 Fondamenti di Informatica - Prof. Clementini 55
Rappresentazione in complemento a due
• Dato un numero negativo –x con n bit a
disposizione, tale rappresentazione è definita
come r = 2n - x.
• Operativamente si può calcolare così:
– si complementa bit a bit il modulo del numero
(compresi gli zeri a sinistra)
– si aggiunge 1
• Es.: rappresentare -5 con 4 bit
• Es.: rappresentare -8 con 5 bit
06/03/2018 Fondamenti di Informatica - Prof. Clementini 56
Rappresentazione in -8
-7
complemento a due -6
-5
-4

• Esempio 4 bit -3
-2
• Con n bit a disposizione, -1
l’intervallo di numeri 0
1
rappresentabili è 2
– 2n-1 .. (2n-1 – 1) 3
4
5
6
7
06/03/2018 Fondamenti di Informatica - Prof. Clementini 57
Rappresentazione in -8 1000
-7 1001
complemento a due -6 1010
-5 1011
-4 1100

• Esempio 4 bit -3 1101


-2 1110
• Con n bit a disposizione, -1 1111
l’intervallo di numeri 0 0000
1 0001
rappresentabili è 2 0010
– 2n-1 .. (2n-1 – 1) 3 0011
4 0100
5 0101
6 0110
7 0111
06/03/2018 Fondamenti di Informatica - Prof. Clementini 58
Rappresentazione in complemento a due
• Per calcolare il valore di un numero
rappresentato in complemento si può
applicare di nuovo il procedimento:
– Si complementa bit a bit
– Si aggiunge 1

06/03/2018 Fondamenti di Informatica - Prof. Clementini 59


Rappresentazione in complemento a due
• Nell’aritmetica con la rappresentazione in
complemento a due non esiste l’operazione di
differenza perché si fa sempre la somma delle
rappresentazioni.
0110 +
Es. 6 – 4 = 2
1100 =
0010

06/03/2018 Fondamenti di Informatica - Prof. Clementini 60


Rappresentazione in complemento a due
• Se l’operazione dà un risultato che non è
compreso nell’intervallo dei numeri
rappresentabili con n bit a disposizione
abbiamo un errore di ‘overflow’.

06/03/2018 Fondamenti di Informatica - Prof. Clementini 61


Rappresentazione dei numeri frazionari

• un numero frazionario con n cifre dopo la virgola


X= 0, c1c2 c n
• Valore del numero in base b

V ( X )  c1  b 1  c2  b 2   c n  b  n
1
=  (ci  bi )
i  n
• Esempio: 0,1012 = 1  21  0  22  1 23 = 0,62510

06/03/2018 Fondamenti di Informatica - Prof. Clementini 62


Conversione in base b
• Moltiplicazioni successive:
– Si moltiplica la parte frazionaria data per la base, ottenendo un
numero frazionario, di cui si considera parte intera e parte frazionaria
– Si continua a moltiplicare la parte frazionaria per la base ottenendo
sempre una parte frazionaria e una intera. Ci si arresta quando la
parte frazionaria è zero oppure si raggiunge la precisione voluta.
– Il risultato è la sequenza di parti intere ottenuta

06/03/2018 Fondamenti di Informatica - Prof. Clementini 63


Esempi:
Conversione in base b

Si può fare anche il processo inverso visto


prima per ottenere il numero frazionario in
base 10.

06/03/2018 Fondamenti di Informatica - Prof. Clementini 64


Conversione in base b

06/03/2018 Fondamenti di Informatica - Prof. Clementini 65


Conversione in base b
0,26510 = 0,010000111101……2

Abbiamo infinite cifre decimali in base 2. Se ci fermiamo qui


abbiamo una precisione superiore a 2-12

06/03/2018 Fondamenti di Informatica - Prof. Clementini 66


Conversione in base b

In questo caso si ha un numero periodico in cui la


si ha sempre la ripetizione di 1100 per cui è
necessario ad un certo punto troncarli

06/03/2018 Fondamenti di Informatica - Prof. Clementini 67


Conversione in base b
• Considerazione:
– In questo caso abbiamo subito trovato la parte periodica
– anche per rappresentare in binario una parte frazionaria che in
decimale ha un numero finito di cifre possono essere necessarie
infinite cifre

06/03/2018 Fondamenti di Informatica - Prof. Clementini 68


Rappresentazione in virgola mobile (floating point)
• segno s
• esponente E
• mantissa M

V ( X )  (1)  b  M
s E

06/03/2018 Fondamenti di Informatica - Prof. Clementini 69


Rappresentazione in virgola mobile normalizzata
• mantissa normalizzata se:
– la parte intera è sempre zero
– la prima cifra dopo la virgola è diversa da zero
• Esempio in decimale:
– 27,584 è rappresentato con 0,27584 x 102
• 0,27584 è la mantissa
• 2 è l’esponente.
– 0,000345 è rappresentato con 0,345 x 10-3
• 0,345 è la mantissa
• -3 è l’esponente.

06/03/2018 Fondamenti di Informatica - Prof. Clementini 70


Rappresentazione in virgola mobile
• Esistono diverse rappresentazioni in virgola
mobile
• Esempio: una parola di 6 bytes può essere
ripartita:
– 1 bit per il segno
– 8 bit per l’esponente
– 39 bit per la mantissa

06/03/2018 Fondamenti di Informatica - Prof. Clementini 71


Rappresentazione in virgola mobile
• Il numero di bit assegnati all’esponente
determina il numero più grande e più piccolo
in valore assoluto che si riesce a rappresentare

06/03/2018 Fondamenti di Informatica - Prof. Clementini 72


Rappresentazione in virgola mobile
• Il numero di bit assegnati alla mantissa
influenza la precisione del numero.

06/03/2018 Fondamenti di Informatica - Prof. Clementini 73


Domande di riepilogo
• Che valore rappresenta il seguente numero?
100110
Senza segno=
Modulo e segno=
Complemento a due=

06/03/2018 Fondamenti di Informatica - Prof. Clementini 74


Domande di riepilogo
• Decodificare il seguente numero floating point
1100000101000000
sapendo che:
Il primo bit è il segno della mantissa
I seguenti 6 bit rappresentano l’esponente in
complemento a due della base due
I restanti 9 bit rappresentano la mantissa

06/03/2018 Fondamenti di Informatica - Prof. Clementini 75


Rappresentazione
di caratteri cod.
0
1
car.
NUL
SOH
cod.
32
33
car.
SPACE
!
cod.
64
65
car.
@
A
cod.
96
97
car.
`
a
2 STX 34 " 66 B 98 b

• Caratteri
3 ETX 35 # 67 C 99 c
4 EOT 36 $ 68 D 100 d
5 ENQ 37 % 69 E 101 e
6 ACK 38 & 70 F 102 f

rappresentati con 7
8
9
BEL
BS
HT
39
40
41
'
(
)
71
72
73
G
H
I
103
104
105
g
h
i

una codifica intera 10


11
12
LF
VT
FF
42
43
44
*
+
,
74
75
76
J
K
L
106
107
108
j
k
l

• Esempio: codice
13 CR 45 - 77 M 109 m
14 SO 46 . 78 N 110 n
15 SI 47 / 79 O 111 o
16 DLE 48 0 80 P 112 p

ASCII a 7 o 8 bit 17
18
19
DC1
DC2
DC3
49
50
51
1
2
3
81
82
83
Q
R
S
113
114
115
q
r
s
20 DC4 52 4 84 T 116 t
21 NAK 53 5 85 U 117 u
22 SYN 54 6 86 V 118 v
23 ETB 55 7 87 W 119 w
24 CAN 56 8 88 X 120 x
25 EM 57 9 89 Y 121 y
26 SUB 58 : 90 Z 122 z
27 ESC 59 ; 91 [ 123 {
28 FS 60 < 92 \ 124 |
29 GS 61 = 93 ] 125 }
30 RS 62 > 94 ^ 126 ~
31 US 63 ? 95 _ 127 DEL

06/03/2018 Fondamenti di Informatica - Prof. Clementini 76


Rappresentazione
di caratteri
• Ingrandimento:
– Codici ASCII relativi
alle cifre 0..9

06/03/2018 Fondamenti di Informatica - Prof. Clementini 77


Rappresentazione
di caratteri
• Ingrandimento:
– Codici ASCII relativi
alle lettere
maiuscole A..Z

06/03/2018 Fondamenti di Informatica - Prof. Clementini 78


Algebra di Boole
• Valori di verità: vero e falso (true e false)
• Rappresentati con 0 (falso) e 1 (vero)
• Operazioni
– somma (OR)
– prodotto (AND)
– complemento (NOT)

06/03/2018 Fondamenti di Informatica - Prof. Clementini 79


Tabelle di verità - OR
• Operazione OR, detta anche
somma logica, dà come
risultato vero se uno dei due OR F T
valori di partenza è vero
F F T
• Es.: la frase “mangio la pera T T T
o la mela” è vera se mangio
la pera, la mela, o entrambe;
è falsa altrimenti.

06/03/2018 Fondamenti di Informatica - Prof. Clementini 80


Tabelle di verità - AND
• Operazione AND, detta
anche prodotto logico, dà
come risultato vero se
entrambi i valori di partenza AND F T
sono veri
F F F
• Es.: la frase “mangio la pera T F T
e la mela” è vera se mangio
sia la pera che la mela; è
falsa altrimenti.

06/03/2018 Fondamenti di Informatica - Prof. Clementini 81


Tabelle di verità - NOT
• Operazione NOT, detta
anche complemento o
negazione, dà come risultato
vero se il valore di partenza NOT
è falso e viceversa F T
• Es.: la frase “non mangio la T F
pera” è vera se la frase
“mangio la pera” è falsa

06/03/2018 Fondamenti di Informatica - Prof. Clementini 82

Potrebbero piacerti anche