Premessa
Elementi di Informatica e
Programmazione
Abbiamo visto il concetto astratto di calcolatore:
non com’è fatto o come funziona, ma che cos’è in sé
La Codifica dell’informazione
Concetto di problema (classe di domande omogenee, alle quali si
possa dare risposta con una procedura uniforme), istanza,
(parte 1)
soluzione
Concetto di algoritmo (specifica attraverso una sequenza di istruzioni
come produrre una soluzione per ogni istanza)
Concetto di programma (descrizione formale di un algoritmo)
Il calcolatore come esecutore universale di programmi
Corsi di Laurea in:
Ingegneria Civile
Ingegneria per l’Ambiente e il Territorio
Università degli Studi di Brescia
Ora cominciamo a esaminare come “in pratica” i calcolatori attuali
sono in grado di interpretare i programmi ed eseguirli
Docente: Daniela Fogli
Cominciamo a parlare di rappresentazione dell’informazione
Daniela Fogli – Elementi di Informatica e Programmazione
Il concetto di informazione e supporto
2
Proprietà di un supporto
Informazione: entità che può essere comunicata
Non può esistere informazione senza supporto fisico: mezzo
su cui l’informazione può essere memorizzata e attraverso
cui può essere trasmessa
Il supporto deve poter assumere configurazioni differenti
altrimenti non è in grado di portare informazione
Ad ogni configurazione viene associata una differente entità di
informazione
Il caso più semplice: 2 configurazioni possibili
Esempi: interruttore acceso/spento, tensione sì/no, circuito
aperto/chiuso
Il CD in cui è memorizzato
Un brano musicale
Elemento di informazione rappresentato dalla configurazione del
supporto (es. soccorso sanitario: )
L’aria attraverso cui viene
trasmesso
Associazione simboli-significati: convenzione semantica
Es. di convenzione semantica alternativa: soccorso sanitario: …
Daniela Fogli – Elementi di Informatica e Programmazione
3
Daniela Fogli – Elementi di Informatica e Programmazione
4
Codice
Successione di
simboli
Attività di
interpretazione
Esempio di codice
Attraverso il codice si attribuisce un significato
convenzionale a ciascuna configurazione che il supporto
può assumere
Entità di
informazione
ES., 2 dadi
E’ necessario un codice:
•
un insieme di regole che
stabiliscono le associazioni
fra configurazioni e entità di
informazione
•
Daniela Fogli – Elementi di Informatica e Programmazione
5
Codifica e Decodifica
letta (da un supporto fisico)
decodifica
Daniela Fogli – Elementi di Informatica e Programmazione
….
Daniela Fogli – Elementi di Informatica e Programmazione
6
Istruzioni e dati devono essere rappresentate
(codificate) secondo il linguaggio noto all’esecutore
Decodifica = operazione con cui l’informazione viene
10
⇒ lettera B
•
Programma = istruzioni che operano su dati
scritta (su un supporto fisico)
Il numero “dieci”
•
⇒ lettera A
Codifica dei dati e delle istruzioni
Codifica = operazione con cui l’informazione viene
codifica
•
L’esecutore deve essere infatti in grado di memorizzare
e manipolare istruzioni e dati
Informazione
Supporto
fisico
7
Daniela Fogli – Elementi di Informatica e Programmazione
8
Che linguaggio è in grado di interpretare
un calcolatore?
Linguaggio binario
Hardware: i componenti fisici di un calcolatore
Ai due stati sono convenzionalmente associati i valori
“0” e “1”
In pratica, l’hardware è costruito con una delle seguenti tecnologie:
Tecnologie elettroniche:
Quindi, in un calcolatore, istruzioni e dati vengono
codificati come sequenze di 0 e 1
elementi fondamentali: transistor
sono considerati due livelli di tensione (alta/bassa)
Tecnologie magnetiche:
memorie costituite da materiale magnetizzabile (es: HD)
due stati di polarizzazione (positiva/negativa)
Tecnologie ottiche:
010101001111001111010111010101011011
materiali con proprietà ottiche rilevate da raggio laser (es: CD)
due stati (es: assenza o presenza di un pit)
Daniela Fogli – Elementi di Informatica e Programmazione
9
Codifica binaria
10
Il problema della rappresentazione
Alfabeto binario = {0, 1}
dove 0 e 1 sono dette cifre binarie o BIT (Binary digIT)
Insieme di simboli
disponibili nel
calcolatore = {0, 1}
Insieme di “oggetti”
che vogliamo
rappresentare
Abbiamo quindi il problema di rappresentare tutte le
informazioni di interesse (i dati: numeri, testi,
immagini, filmati, ecc., e le istruzioni) in linguaggio
binario: ci occuperemo della codifica binaria
dell’informazione
Daniela Fogli – Elementi di Informatica e Programmazione
Daniela Fogli – Elementi di Informatica e Programmazione
Problema:
assegnare un codice univoco a tutti
gli oggetti compresi in un insieme
Ho n oggetti da codificare e 2 soli simboli, quanto è la lunghezza k
delle sequenze di simboli?
Oppure: dispongo di sequenze di lunghezza k di simboli 0 e 1, quanto è
il numero n di oggetti che posso codificare?
11
Daniela Fogli – Elementi di Informatica e Programmazione
12
Codice binario a k bit
Codifica binaria
• Funzione:
- dominio (insieme di oggetti da rappresentare)
- codominio: insieme di tutte le possibili sequenze di k bit
Se k = 1
• Funzione biunivoca tra il dominio e la sua immagine,
detta insieme delle codifiche
Se k = 2
• Esempio di codice binario a 3 bit:
Se k = 3
Posso codificare 4 oggetti: 00, 01, 10, 11
Posso codificare 8 oggetti: 000, 001, 010, 011, 100, 101, 110,
111
110
100
O1
011
O3
Posso codificare 2 oggetti: al primo assegno il codice ‘0’ e al
secondo assegno il codice ‘1’
101
O2
111
Qual è la regola? (Ipotesi implicita: i codici hanno tutti
la stessa lunghezza)
insieme delle
codifiche
001
010
dominio
codominio
000
Daniela Fogli – Elementi di Informatica e Programmazione
Daniela Fogli – Elementi di Informatica e Programmazione
13
La regola
Viceversa …
Se ho N oggetti da codificare (con due simboli 0 e 1): qual è il
numero minimo k di bit necessario?
Se ho a disposizione sequenze di k bit, quanti elementi
posso codificare (ovvero, qual è il numero N di oggetti
distinti che posso rappresentare con un codice a k bit)?
Se N = 128, ho bisogno di k = 7 bit perché 27 = 128
infatti k = log2128 = 7
N = 2k
Se N = 129, ho bisogno di 1 bit in più
infatti k = log2129 = 8
in questo caso, ottengo uno spreco di configurazioni, perché con 8
bit posso codificare fino a 256 elementi
Daniela Fogli – Elementi di Informatica e Programmazione
14
15
k = log2N
Daniela Fogli – Elementi di Informatica e Programmazione
16
Esempio: i mesi dell’anno
1 bit 2 gruppi
Gennaio Febbraio
Marzo Aprile
Maggio Giugno
Luglio Agosto
Settembre Ottobre
Novembre Dicembre
Gennaio
Marzo
Maggio
Luglio
Settembre Ottobre
Novembre Dicembre
Luglio
Settembre
Novembre
Gennaio 000
Febbraio 010
Marzo 001
Maggio
Aprile 011
Giugno
Luglio 100
Agosto 110
Settembre 101
Novembre
Ottobre 111
Dicembre
3 bit 8 gruppi
Cifra
Codifica binaria
decimale
rappresentata b3 b2 b1 b0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
2
0
0
1
1
3
0
1
0
0
4
0
1
0
1
5
0
1
1
0
6
0
1
1
1
7
1
0
0
0
8
1
0
0
1
9
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
2 bit 4 gruppi
Gennaio Febbraio
Marzo
Aprile
Maggio Giugno
0
Agosto 1
Esempio: codifica BCD
00
10
Gennaio 0000
Febbraio
Aprile
Giugno
Agosto
Ottobre
Dicembre
01
11
Febbraio 0100
Marzo
0010
Aprile
0110
Maggio
0011
Giugno
0111
Luglio
1000
Agosto
1100
Settembre 1010
Ottobre
1110
Novembre 1011
Dicembre 1111
4 bit 16 gruppi… mancano 4
configurazioni!
Daniela Fogli – Elementi di Informatica e Programmazione
17
Tipologie di codici
codifiche
non usate
Daniela Fogli – Elementi di Informatica e Programmazione
Tipologie di codici
Nel seguito vedremo tipologie di rappresentazioni
diverse:
Nel seguito vedremo tipologie di rappresentazioni
diverse:
Senza assumere limitazioni sul numero di bit a disposizione:
per numeri [notazione binaria, ovvero posizionale con base 2]
Disponendo di un numero di bit limitato:
Senza assumere limitazioni sul numero di bit a disposizione:
per numeri [notazione binaria, ovvero posizionale con base 2]
Disponendo di un numero di bit limitato:
numeri naturali
interi relativi [valore assoluto e segno, compl. a 1, compl. a 2]
“reali” [virgola fissa e virgola mobile]
valori logici, caratteri alfabetici, testi
suoni, immagini e sequenze video
codici per la rilevazione e correzione di errori
numeri naturali
interi relativi [valore assoluto e segno, compl. a 1, compl. a 2]
“reali” [virgola fissa e virgola mobile]
valori logici, caratteri alfabetici, testi
suoni, immagini e sequenze video
codici per la rilevazione e correzione di errori
Codici di compressione (senza | con perdita)
Daniela Fogli – Elementi di Informatica e Programmazione
18
Codici di compressione (senza | con perdita)
19
Daniela Fogli – Elementi di Informatica e Programmazione
20
Sistema di numerazione posizionale
Sistema di numerazione posizionale
Esempio: b=10, il numero 3256.234
Ad ogni cifra del numero è attribuito un peso a seconda della sua
posizione all’interno del numero
dove c3 = 3, c2 = 2, c1 = 5, c0 = 6, c-1=2, c-2=3, c-3 =4
rappresenta
3x103 + 2x102 + 5x101 + 6x100 + 2x10-1 + 3x10-2 + 4x10-3 =
= 3000 + 200 + 50 + 6 + 0.2 + 0.03 + 0.004
Sistema di numerazione posizionale in base b:
Numero Nb = ckck-1ck-2…c0.c-1c-2…cc-h
Dove ck è la cifra più significativa
c0 è la cifra meno significativa (della parte intera)
c-1 è la cifra più significativa della parte frazionaria
c-h è la cifra meno significativa della parte frazionaria
Nb è il numero ottenuto facendo:
Perché l’essere umano
conta in base dieci?
ckxbk+ck-1xbk-1+ck-2xbk-2…+c0xb0 +c-1xb-1+…+c-hxb-h
Daniela Fogli – Elementi di Informatica e Programmazione
Daniela Fogli – Elementi di Informatica e Programmazione
21
Le basi più comuni
22
Notazione Binaria
Base = 2
Se la base è b, allora le cifre che possono essere
utilizzate per comporre un numero vanno
Cifre: 0, 1
Numeri espressi nella forma
(cn cn-1 … c1 c0 . c-1 c-2 …)due
da 0 a b-1
[ci ∈ {0,1}]
il cui “valore” è
(cn*2n + cn-1*2n-1 + … + c0*20 + c-1 * 2-1 + c-2 *2-2 …)
Esempio: b = 10, cifre possibili: [0,1,2,3,4,5,6,7,8,9]
Esempio: b = 2, cifre possibili: [0,1]
Esempio: b = 8, cifre possibili: [0,1,2,3,4,5,6,7]
Esempio: b = 16, cifre possibili: [0,1,2,3,4,5,6,7,8,9,A,
B,C,D,E,F]
ESEMPIO
N = 101011.1011due
N = 1 — 25 + 0 — 24 + 1 — 23 + 0 — 22 + 1 — 21 + 1 — 20
+ 1 — 2-1 + 0 — 2-2 + 1 — 2-3 + 1 — 2-4 =
= 43.6875dieci
Daniela Fogli – Elementi di Informatica e Programmazione
23
Daniela Fogli – Elementi di Informatica e Programmazione
24
Conversione binario ⇒ decimale
Domande
Come visto, la conversione si ottiene direttamente dalla
definizione stessa di numero binario
Il numero binario 101001011due è pari o dispari?
A quale numero decimale corrisponde?
Scriviamo i numeri denotando la base attraverso il pedice:
es. 1101.1due
E’ facile convertirlo in un numero decimale facendo:
101001011due = (1x28 + 0x27 + 1x26 + 0x25 + 0x24 + 1x23 + 0x22 +
1x21 + 1x20)dieci = (256 + 64 + 8 + 2 + 1)dieci = 331dieci
1101.1due = 1x23 + 1x22 + 0x21 + 1x20 + 1x2-1 = 8dieci + 4dieci + 0dieci +
+ 1dieci + 0.5dieci = 13.5dieci
Altri esempi:
10101.01due = 1x24 + 0x23 + 1x22 + 0x21 + 1x20 + 0x2-1 + 1x2-2 = 16 +
+ 4 + 1 + 0.25 = 21.25dieci
110010.001due= 1x25 + 1x24 + 0x23 + 0x22 + 1x21 + 0x20 + …+ 1x2-3 =
= 32 + 16 + 2 + 0.125 = 50.125dieci
Daniela Fogli – Elementi di Informatica e Programmazione
26
Conversione decimale ⇒ binario
Conversione decimale ⇒ binario
metodo pratico
Regola pratica per convertire la parte intera
Usare lo stesso metodo visto prima è complesso!
Si noti che:
10dieci 2dieci
Esempio: 3dieci
345dieci = 11x101010 + 100x101001 + 101x10100 = …
ckck-1ck-2…c0 si può scrivere anche come ckck-1ck-2c1xb+c0
Ad esempio:
3256 = 325x10 + 6
325 = 32x10 + 5
32 = 3x10 + 2
3=0x10 + 3
… e poi bisogna fare le moltiplicazioni e l’elevamento a
potenza in base 2 e sommarne i risultati in base 2
Useremo un “metodo pratico”
(in base b = dieci)
In pratica, per “isolare” le cifre del numero, basta fare una serie
di divisioni per la base e tenere il resto
Dato un numero decimale N, innanzitutto distinguiamo parte intera
e la parte frazionaria: N = I.F (ES: dato 56.5dieci, convertiamo
separatamente 56 e 0.5)
Daniela Fogli – Elementi di Informatica e Programmazione
Daniela Fogli – Elementi di Informatica e Programmazione
25
Alla fine, quando il numero è diventato 0, si leggono i resti
dall’ultimo al primo e si ottiene di nuovo il numero
27
Daniela Fogli – Elementi di Informatica e Programmazione
28
Conversione decimale ⇒ binario
Esempio di conversione da decimale
a binario
metodo pratico
Allo stesso modo, per convertire un numero decimale in un
numero binario basta fare una sequenza di divisioni (operazione
div) per la base 2 e prendere il resto
137dieci = ?due
137 div 2 = 68
Esempio:
56 div 2 = 28
28 div 2 = 14
14 div 2 = 7
7 div 2 = 3
3 div 2 = 1
1 div 2 = 0
con
con
con
con
con
con
resto
resto
resto
resto
resto
resto
0 (cifra meno significativa del numero bin)
0
0
1
1
1 (cifra più significativa del numero bin)
con resto 1
68 div 2 = 34
con resto 0
34 div 2 = 17
con resto 0
17 div 2 = 8
con resto 1
8 div 2 = 4
con resto 0
4 div 2 = 2
con resto 0
2 div 2 = 1
con resto 0
1 div 2 = 0
con resto 1
Si ottiene 111000due = 32dieci + 16dieci + 8dieci + 0 + 0 + 0 = 56dieci
Si legge dal
basso verso
l’alto !!!
Risultato = 10001001due
Esercizio: riconvertire il risultato in decimale
Daniela Fogli – Elementi di Informatica e Programmazione
Daniela Fogli – Elementi di Informatica e Programmazione
29
Errore Tipico (1)
81
40
20
10
5
2
1
0
1
0
0
0
1
0
1
Errore Tipico (2)
88
44
22
11
5
2
1
E’ un errore considerare la prima cifra
ottenuta come la più significativa
otterrei 1000101 che vale 69!
0
0
0
1
1
0
E’ un errore fermarsi quando si ottiene
1 come dividendo
otterrei 011000 (24) anziché 1011000 (64+24)
NB: se si è colti dal dubbio, ragionare: se continuassi il
procedimento di divisioni successive aggiungerei zeri; questi
“non pesano” solo se corrispondono alle posizioni più
significative ( 0…0xyz ) !
Daniela Fogli – Elementi di Informatica e Programmazione
30
NB: se si è colti dal dubbio, ricordare che la prima cifra
significativa in questo caso vale sempre 1
31
Daniela Fogli – Elementi di Informatica e Programmazione
32
Conversione da decimale a binario
della parte frazionaria
Regola pratica per convertire la parte
frazionaria
Basta fare una sequenza di moltiplicazioni per 2 e prendere la
parte intera di ciascun prodotto dalla cifra più significativa a quella
meno significativa
Esempio: 0.587dieci binario?
F = a-1*b-1 + a-2*b-2 + ....... + a-n*b-n (dove b è la base)
F * b = a-1 + a-2*b-1 + ....... + a-n*b-(n-1)
la parte intera è a-1
(F*b - a-1) * b = a-2 + ....... + a-n*b-(n-2)
la parte intera è a-2
...
.
0.587 x 2 = 1.174: p.f. 0.174, parte intera 1 (cifra più significativa)
0.174 x 2 = 0.348: p.f. 0.348, parte intera 0
0.348 x 2 = 0.696: p.f. 0.696, parte intera 0
0.696 x 2 = 1.392: p.f. 0.392, parte intera 1
0.392 x 2 = 0.784: p.f. 0.784, parte intera 0
0.784 x 2 = 1.568: p.f. 0.568, parte intera 1
….
Es. con b = 10, sia F = .531
.531 x 10 = 5 + .31
.31 x 10 = 3 + .1
.1 x 10 = 1
la parte intera è 5
la parte intera è 3
la parte intera è 1
Le 3 cifre che
costituiscono il
numero
Si ottiene 0.10010due con 5 cifre binarie dopo la virgola, oppure
0.100101due con 6 cifre binarie dopo la virgola, oppure…
In ogni caso c’è un’approssimazione
Ma a noi interessa che la base di arrivo sia la base 2 …
Daniela Fogli – Elementi di Informatica e Programmazione
33
Esempio:
convertire 43.687dieci in binario
43
1
.687 x 2 p.i. 1
21
1
.374 x 2 p.i. 0
10
0
.748 x 2 p.i. 1
5
1
.496 x 2 p.i. 0
2
0
.992 x 2 p.i. 1
1
1
.984 …
Daniela Fogli – Elementi di Informatica e Programmazione
34
Operazioni aritmetiche
Operazioni +, -, *, / su numeri in base 2
Valgono le stesse regole e proprietà delle
operazioni in base 10
0
43.687dieci = 101011.10101due
(fermandosi al quinto bit per la parte
frazionaria)
Daniela Fogli – Elementi di Informatica e Programmazione
35
Daniela Fogli – Elementi di Informatica e Programmazione
36
Aritmetica binaria: addizione
+
0
1
0
0
1
Aritmetica binaria: sottrazione
0
1
1
1
(1) 0
0
0
1
1
(1) 1
0
Riporto: 1 + 1 = 2dieci = 10due
Prestito (borrow): 102 – 12 (= 210 – 110) = 012
Esempio:
Esempio:
110+
10=
_________
6
1110 –
14
2
11 =
3
_________
1000
1011
Daniela Fogli – Elementi di Informatica e Programmazione
Daniela Fogli – Elementi di Informatica e Programmazione
37
0
0
0
38
Altri esempi di operazioni
aritmetiche in base 2
Aritmetica binaria: moltiplicazione
*
0
1
11
1
0
1
moltiplicazione
addizione
1011+
Esempio:
111010*
1011=
58
11
0111=
______
__________
111010
111010
000000
111010
10010
11000011=
__________
1001
_______________________________________
1001111110
sottrazione
638
1101×
1011=
_______
1101+
1101 +
0000
+
1101
+
_____________
10001111
Esercizio: controllare se i risultati sono corretti convertendo in decimale
Daniela Fogli – Elementi di Informatica e Programmazione
39
Daniela Fogli – Elementi di Informatica e Programmazione
40
Moltiplicazione/divisione
per potenze di 2
Numeri in base 8 (ottali)
Le cifre: [0, 1, 2, 3, 4, 5, 6, 7]
Moltiplicazione per 2n: spostamento della virgola a
destra di n posizioni (con eventuale aggiunta di zeri alla
fine del numero)
17otto = ?dieci
1otto = 1dieci
17otto = (1 x
24
Es. 1010.10111 x
= 10101011.1
5
Es. 1010.10 x 2 = 101010000
7otto = 7dieci
81
+7x
80)dieci
= (8 + 7)dieci = 15dieci
372otto = ?dieci
372otto = (3 x 82 + 7 x 81 + 2 x 80)dieci = (3 x 64 + 56 + 2)dieci =
250dieci
Divisione per 2n (o moltiplicazione per 2-n):
spostamento della virgola a sinistra di n posizioni
Es. 1010.10111 / 23 = 1.01010111
(equivalente a 1010.10111 x 2-3)
Daniela Fogli – Elementi di Informatica e Programmazione
Numeri in base 16 (esadecimali)
42
I primi 16 numeri in base 10, 2, 8, e 16
decimale
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Le cifre: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F]
7D2sedici = ?dieci
7sedici = 7dieci Dsedici = 13dieci 2sedici = 2dieci
7D2sedici = (7 x 162 + 13 x 161 + 2 x 160)dieci = (7 x 256 + 208 +
2)dieci = (1792 + 208 + 2)dieci = 2002dieci
FAsedici = ?dieci
Fsedici = 15dieci Asedici = 10dieci
FAsedici = (15 x 161 + 10 x 160)dieci = (240 + 10)dieci = 250dieci
Daniela Fogli – Elementi di Informatica e Programmazione
Daniela Fogli – Elementi di Informatica e Programmazione
41
43
Sistema di numerazione
binario
ottale
0000
0
0001
1
0010
2
0011
3
0100
4
0101
5
0110
6
0111
7
1000
10
1001
11
1010
12
1011
13
1100
14
1101
15
1110
16
1111
17
esadecimale
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
Daniela Fogli – Elementi di Informatica e Programmazione
44
Conversione binario ⇒ ottale
Perché le basi 2, 8 e 16?
Tabella di conversione
0otto
000due
001due
1otto
010 due
2otto
011due
3otto
100due
4otto
101due
5otto
110due
6otto
111due
7otto
La rappresentazione binaria ha motivazioni di tipo
tecnologico
Le rappresentazioni ottali ed esadecimali sono utili per
rappresentare sinteticamente i valori binari
E’ facile convertire un numero in base 2 in un numero
in base 8 o 16
Le cifre binarie si possono raggruppare a 3 a 3 e poi
codificare con numeri ottali
Le cifre binarie si possono raggruppare a 4 a 4 e poi
codificare con numeri esadecimali
Daniela Fogli – Elementi di Informatica e Programmazione
11 110 110 100.001due = 3 6 6 4 .1otto
Separazione a gruppi di tre cifre binarie
a partire dalla meno significativa per la
parte intera, e dalla più significativa per
la parte frazionaria (dalla virgola!)
Nel gruppo “più significativo” della
parte intera si possono aggiungere degli
zeri a sinistra, nel “meno significativo”
della frazionaria zeri a destra
Daniela Fogli – Elementi di Informatica e Programmazione
45
Conversione binario ⇒ esadecimale
46
Errore Tipico
Convertire in notazione ottale il numero binario 10111010.11
Tabella di conversione
0000due
0001due
0010due
0011due
0100due
0101due
0110due
0111due
1000due
1001due
1010due
1011due
1100due
1101due
1110due
1111due
0sedici
1sedici
2sedici
3sedici
4sedici
5sedici
6sedici
7sedici
8sedici
9sedici
Asedici
Bsedici
Csedici
Dsedici
Esedici
Fsedici
10111010.11
5 6 2. 3
111 1011 0100due = 7 B 4sedici
Invece 562.38 = 5*64 + 6*8 + 2 + 3/8 = 370.375 che sicuramente non può
essere rappresentato con una parte intera di soli 8 bit!!!
Si procede nello stesso modo,
ma separando le cifre a gruppi
di 4 anziché di 3
Daniela Fogli – Elementi di Informatica e Programmazione
PARTIRE SEMPRE DAL PUNTO DECIMALE, EVENTUALMENTE
COMPLETANDO LE CIFRE CON DEGLI ZERI PER OTTENERE LE
TERNE:
xxx xxx . yyy yyy …
47
Daniela Fogli – Elementi di Informatica e Programmazione
48
Esecuzione corretta
Un altro esempio
Convertire in binario il numero in notazione ottale 135.18
L’esercizio quindi va risolto così:
10111010.110
2 7 2 . 68
1 3 5.18
0 0 1 0 1 1 1 0 1 . 001
ERRORE TIPICO: CONVERTIRE IN
infatti risulta 272.68 = 2*64 + 7*8 + 2 + 6/8 = 186.7510
001 011 101 . 1
e 10111010.112 = 128 + 32 + 16 + 8 + 2 + 0.5 + 0.25 = 186.7510
infatti 0.18 = 1/8 = 0.125 mentre 0.12 = 1/2 = 0.5
Daniela Fogli – Elementi di Informatica e Programmazione
49
Esempi di conversione
esadecimale-binario
1)
0111010 .1
Daniela Fogli – Elementi di Informatica e Programmazione
50
Esercizio (in aula)
Dato il numero binario 001010110111due convertirlo in
un numero ottale e poi in un numero esadecimale
3 A . 816
Convertire il numero ottale in numero decimale
2)
E 3 . 716
Numero ottale: 001 010 110 111 1267otto
11100011.0111
Numero esadecimale: 0010 1011 0111 2B716
Numero decimale: 1267otto = (1x83 + 2x82 + 6x81 +
7x80)dieci = (512 + 128 + 48 + 7)dieci = 695dieci
ATTENZIONE!!!
PARTIRE SEMPRE DAL PUNTO DECIMALE!!!
xxxx . xxxx xxxx
Daniela Fogli – Elementi di Informatica e Programmazione
51
Daniela Fogli – Elementi di Informatica e Programmazione
52
Esercizio (in aula)
Esercizi
Se la base considerata è b = 4, quali sono le cifre
utilizzate per comporre i numeri?
[0,1,2,3]
Convertire il numero (1320)quattro nel corrispondente
numero in base 10
1320quattro = (1x43 + 3x42 + 2x41 + 0x40)dieci = (64 + 48 +
8)dieci = 120dieci
Qual è il numero massimo rappresentabile in base 3
con quattro cifre (espresso in base 3)?
2222tre
Daniela Fogli – Elementi di Informatica e Programmazione
1. Convertire in formato decimale i seguenti numeri binari:
11, 101011, 1100, 111111, 10101010
2. Convertire in decimale i seguenti numeri frazionari binari :
0.111, 0.0101, 0.00011
3. Convertire in formato decimale i seguenti numeri ottali:
12, 23, 345, 333.14, 560.271
4. Convertire in formato decimale i seguenti numeri esadecimali:
12.5, DAB, 15D, FFFF, 51A
5. Convertire in binario i seguenti numeri decimali (considerando 6 bit
per la parte frazionaria):
45.226, 234.349, 67.712, 83.8123
6. Convertire in ottale e in esadecimale i numeri binari ottenuti dalla
conversione dei numeri decimali di cui al punto precedente
53
Daniela Fogli – Elementi di Informatica e Programmazione
54
Scarica

3-La codifica dell`informazione (parte 1)