Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Ambiente e Territorio
Prof. Ing. Alfredo Liverani
Informatica, Von Neumann e
l’algebra booleana
1
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
2
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
La macchina universale
Programma
Programma: sequenza di operazioni atte a predisporre
l’elaboratore
l’elabo ato e alla soluzione
sol ione di una
na determinata
dete minata classe di problemi
p oblemi
Il programma è la descrizione di un algoritmo in una forma
comprensibile all’elaboratore
Algoritmo
Algoritmo: sequenza finita di istruzioni attraverso le quali un
operatore umano è capace di risolvere ogni problema di una data
classe; non è direttamente eseguibile dall’elaboratore
L’elaboratore è una macchina universale:
universale cambiando il programma
residente
id t ini memoria,
i è ini grado
d di risolvere
i l problemi
bl i di natura
t
diversa (una classe di problemi per ogni programma)
Ancora sull’informatica...
3
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
L’algebra di Boole
Algebra Booleana
• Contempla
p due costanti 0 e 1 ((falso
falso e vero
vero))
• Corrispondono a due stati che si escludono a vicenda
• Possono descrivere lo stato di apertura o chiusura di un
generico contatto o di un circuito a più contatti
0 1
4
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
L’operazione di OR
• Si definisce l’operazione
p di somma logica
g ((OR):
)
il valore della somma logica è il simbolo 1 se il valore di
almeno uno degli operandi è il simbolo 1
0 0
00 = 0
0 1
01 = 1
10 = 1 0+0 0+1
11 = 1 1 1
0 1
1+0 1+1
L’operazione di AND
• Si definisce l’operazione
p di p prodotto logico
g ((AND):
)
il valore del prodotto logico è il simbolo 1 se il valore di tutti
gli operandi è il simbolo 1
00 = 0 0 0 0 1
01 = 0
10 = 0 00 01
11 = 1
1 0 1 1
10 11
10
5
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
La negazione NOT
• Si definisce l’operatore
p di negazione
g ((NOT):
)
l’operatore inverte il valore della costante su cui opera
0 = 1
1 = 0
• Dalla definizione…
0 = 0
1 = 1
11
Variabili binarie
12
6
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
• La negazione
g di una variabile x è
x=0 se x=1
x=1 se x=0
13
Alcune identità
• Si verificano
x + 1 = 1 x1=x
x + 0 = x x0=0
x + x = x xx=x
• Ad esempio…
x 1 = x
x= 0 x= 1
01 = 0 11 = 1
OK!
14
7
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
Altre proprietà
• Per g
gli operatori
p AND e OR valgono
g le seguenti
g proprietà:
p p
commutativa x1+x2 = x2+x1 x1 x2 = x2 x1
associativa x1+x2+x3 = x1+(x2+x3) x1 x2 x3 = x1(x2 x3)
distributiva del prodotto rispetto alla somma x1 x2 + x1 x3 = x1(x2+x3)
x + x = 1
x x = 0
x = x
15
010 x1x2x3
16
8
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
Funzioni logiche
9
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
Un esempio: lo XOR
x1 x2 XOR
0 0 0
0 1 1
1 0 1
1 1 0
• LL’espressione
espressione come somma di prodotti è quindi...
XOR = x1x2 + x1x2
19
A 1 1 B A 1 1 B A B L
0 0 1
A=0
0 B=0
0 A=0 B=1 0 1 0
1 0 0
1 1 1
A B
L A B L
0 0 0 0
1 1 1 1
A B A B A B A B
L = A
20
10
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
Un esercizio
0 0 0
1 1 1
Cambia lo A B C
stato di un 0 0 0
L = 1
interruttore
qualsiasi
0 0 0
1 1 1
A B C
0 1 0
21
0 0 1 0 1 1
L = 0 L = 1
L = 1 L = 0
A B C A B C
A B C A B C
0 0 0 0 1 0 1 1 1
1 0 1
L = 1 L = 0
A B C A B C
1 0 0 1 1 0
22
11
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
B C B C
A B C A B C
A B C A B C
B C B C
1 0 0 1 0 1
24
12
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
Esercizi
• Esercizio 1
Siano a2, a1, b2, b1 i bit che rappresentano due numeri interi
positivi (Aa2a1 e Bb2b1). Sia r una variabile booleana che vale 1
se e solo A è maggiore di B (AB). Ad esempio, quando A11 e
B10, allora a21, a11, b21, b10 e r1. Si scriva la forma
canonica che definisce r come funzione di a2, a1, b2, b1.
• Esercizio 2
I signori A, B, C e D fanno parte di un consiglio di
amministrazione Sapendo che hanno a disposizione le seguenti
amministrazione.
quote di possesso azionario A40%, B25%, C20%, D15%,
formalizzare tramite tabella di verità (con successiva estrazione
della forma canonica) la funzione booleana che decide quando il
consiglio di amministrazione è in grado di approvare una mozione.
25
Esercizi (continua)
• Esercizio 3
Il direttore di una squadra di calcio vuol comprare 4 giocatori dal
costo di 2, 5, 6 e 8 milioni di euro, ma ha a disposizione solo 8
milioni. Siano a2, a5, a6, a8 variabili booleane che valgono 1 se e
solo se si acquistano, rispettivamente, i giocatori da 2, 5, 6, 8
milioni. Sia r una variabile che è vera se e solo se l’insieme di
giocatori che si decide di comprare costa meno della cifra
disponibile. Ad esempio, se a21, a51, a60, a80, allora r1. Si
scriva
i l forma
la f canonica
i che
h definisce
d fi i r come funzione
f i d ll
delle
variabili a2, a5, a6, a8.
26
13
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
Cifre : 0 1 2 3 4 5 6 7 8 9
Posizione: 3 2 1 0
27
Sistemi in base B
N’ = c1B1+c2B2+...+cnBn
28
14
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
Esempio:: base 2
Esempio
00
01
2 cifre: da 0 a 221 = 3 10 22 = 4 valori
11
29
• La base 2 è la p
più piccola
p per
p un sistema di numerazione
30
15
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
• Un byte
y è un insieme di 8 bit ((un numero binario a 8 cifre))
b7b6b5b4b3b2b1b0
• Potenze del 2
24 = 16
28 = 256
216 = 65536
32
16
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
Da decimale a binario
Numeri interi
(43)10 = (101011)2
33
Da decimale a binario
Numeri razionali
17
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
Da binario a decimale
• …si può operare nel modo seguente: si raddoppia il bit più significativo e
si aggiunge al secondo bit; si raddoppia la somma e si aggiunge al terzo
bit… si continua fino al bit meno significativo
Esempio: convertire in decimale (101011)2
Sistema esadecimale
A = (10)10 D = (13)10
B = (11)10 E = (14)10
C = (12)10 F = (15)10
Esempio:
36
18
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
Da binario a esadecimale
37
(00FF)16
38
19
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
Da esadecimale a binario
0 c 8 f
0000 1100 1000 1111
39
Esempi 1
40
20
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
Esempi 2
41
Esempi 3
B = (7 )/2 =
(79)/2 = 1
(7 Non può essere
una base
42
21
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
43
E
Esempio:
Esempio
i : 12 viene
i rappresentato
t t iin un b
byte
t come…
00001100
44
22
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
• Per rappresentare
pp numeri con segno,
g occorre utilizzare un bit
per definire il segno del numero
• Si possono usare tre tecniche di codifica
Modulo e segno
Complemento a 2
Complemento a 1
45
Modulo e segno
0000 0 1000 0
0001 1 1001 1
0010 2 1010 2
0011 3 1011 3
0100 4 1100 4
0101 5 1101 5
0110 6 1110 6
0111 7 1111 7
positivi negativi 46
23
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
Complemento a 2
{
n
• Il complemento a 2 si calcola…
Effettuando il complemento a 1 del numero di partenza (negazione di ogni
cifra): si trasforma ogni 0 in 1 e ogni 1 in 0
Aggiungendo 1 al numero ottenuto
• Oppure: a partire da destra, lasciando invariate tutte le cifre fino al
primo
i 1 compreso, quindi
i di invertendo
i t d il valore
l d ll rimanenti
delle i ti
100000000 28
01010111 011111111
011111111 281
complemento a 1 01010111 N
10101000
1 10101000 281N
10101001
10101001 281N1
47
Interi in complemento a 2
24
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
Interi a 16 bit
49
Addizione binaria
• Le regole
g per
p l’addizione di due bit sono
0+0=0
0+1=1
1+0=1
1 + 1 = 0 con riporto di 1
50
25
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
Sottrazione binaria 1
Sottrazione binaria – 2
• Utilizzando la rappresentazione
pp in complemento
p a 2,
addizione e sottrazione sono trattate come un’unica
operazione si trascura il bit n 1
N1N2 = N1(2nN2)2n
{
(N2)
complemento a 2 di N2: rappresentazione di (
Si calcola il complemento a 2 di N2
Si somma N1 con il complemento a 2 di N2
Si trascura
t il bit più
iù significativo
i ifi ti d dell risultato
i lt t
Esempio:: (010001)2(000101)2 = (17)10(5)10
Esempio
010001
111011
1001100 (12)10
52
26
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
Rappresentazioni in complemento
• Sono utili p p
perché l’operazione g
di somma algebrica p
può essere
realizzata non curandosi del bit di segno
• In complemento a 1 (più semplice da calcolare)…
Zero ha due rappresentazioni: 00000000 e 11111111
La somma bit a bit funziona “quasi sempre”
00110 (6) 11001 (6)
10101 = ((10) 11010 = (5)
11011 4)
(( 10011 (12)
In complemento a 2…
Zero ha una sola rappresentazione
La somma bit a bit funziona sempre
53
Overflow
• L’overflow
overflow si ha quando il risultato di un’operazione non è
rappresentabile correttamente con n bit
Esempio:: 5 bit [16,
Esempio 16,15]
14 01110 8 11000
10 01010 10 10110
24 11000 8 18 101110 14
• Per evitare l’overflow occorre aumentare il numero di bit
utilizzati per rappresentare gli operandi
• C’è overflow se c’è riporto al di fuori del bit di segno e non
sul bit di segno, o se c’è riporto sul bit di segno, ma non al
di fuori
Punteggio nei vecchi videogame… sorpresa per i campioni!
0111 1111 1111 1111 1 = 1000 0000 0000 0000
32767 1= 32768
54
27
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
Moltiplicazione binaria
Divisione binaria
• La divisione binaria di A p
per B viene calcolata in modo analogo
g
alla divisione decimale, così da ottenere un quoziente Q ed un
resto R, tali che A = BQ R
• La divisione binaria si compone di una serie di sottrazioni
(
^ ^^
110110 101
101 1010
510 + 4
54 = 5
111
1 01
1 00
28
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
Esempio
• Quesito:
Quesito Data una base B, si consideri il numero
x(C5C4C3C2C1C0)B, dove le singole cifre valgono:
C5 = B1, C4 = B1, C3 = B1, C2 = 0, C1 = 0, C0 = 0
Qual è la rappresentazione in base B del risultato dell’espressione
(x/B3)1?
Dividere per B3, che per qualsiasi base si rappresenta come
1000, equivale a “shiftare” il numero di tre cifre a sinistra
Rimangono
Ri quindi
i di le
l tre cifre
if più
iù significative,
i ifi i tutte ugualili a
B1
Sommando 1, a causa dei riporti, si ottiene quindi come
risultato dell’espressione 1000B3, qualsiasi sia il valore
della base B
57
Esercizi
• Esercizio 1
Assumendo che un elaboratore rappresenti i numeri interi con segno su
quattro bit in complemento a 2, si calcolino entrambi i membri della
seguente identità:
(A
(A C)
C)B = (A
(AB) C,
B)
con A=
A=77, B=5
B=5, C=
C=77. Si ottiene lo stesso risultato dal calcolo dei due
membri? Discutere le motivazioni della risposta.
• Esercizio 2
a) Si determini, se esiste, la base b di un sistema di numerazione tale
che
(842)b = (1202)10
b) Si determini, se esiste, la base b16 di un sistema di numerazione
tale che
(725)b (626)b = (224)10
58
29
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
• La rappresentazione
pp dei numeri in virgola
g mobile è in relazione
con la notazione scientifica (es. 1.2102=120)
• La IEEE ha previsto uno standard per la rappresentazione in
virgola mobile
singola precisione (32 bit = 4 byte)
doppia precisione (64 bit = 8 byte)
quadrupla precisione (128 bit = 16 byte)
Singola precisione
31 23 22 0
8 bit 23 bit
Singola precisione
0 0.5 1 2 4
60
30
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
floatingpoint: addizione
L’aritmetica floating
Metodo p
per il calcolo dell’addizione
1. Se le caratteristiche dei numeri sono diverse, si considera il numero
con caratteristica minore e…
1.1 Si trasla la mantissa di un posto a destra
1.2 Si incrementa la caratteristica di 1, fino a quando le due
caratteristiche sono uguali, e corrispondono alla caratteristica
del risultato
2. La mantissa del risultato è ottenuta dalla somma delle due mantisse
3
3. Se ll’addizione
addizione comporta un riporto oltre la cifra più significativa,
significativa si
trasla la mantissa del risultato a destra di un posto, il riporto nel bit
più significativo, e si incrementa la caratteristica di 1
61
Un esempio di addizione
0 1 1 0 1 1 0 1 3.25
(1)s0.M2E4
N = (
0 1 0 1 1 0 0 1 1.125
• La caratteristica del secondo operando è più piccola di una unità, quindi la
mantissa deve scorrere di una posizione a destra
1001 0100
• La caratteristica del risultato è 110 e la mantissa è 1101+ 0100 = 10001; la
caratteristica deve essere aumentata di 1 e portata a 111, e la mantissa del
risultato traslata a destra di una posizione:
31
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
floatingpoint: moltiplicazione
L’aritmetica floating
Metodo p p
per il calcolo della moltiplicazione
1. Si moltiplicano le due mantisse
2. Si addizionano le due caratteristiche
3. Si trasla a sinistra il prodotto delle due mantisse fino ad ottenere
un 1 come cifra più significativa; si diminuisce la caratteristica di 1
per ogni traslazione eseguita
4. Si tronca la mantissa al numero di bit utilizzati nella
rappresentazione; la mantissa del prodotto è il risultato del
troncamento
5. Si sottrae l’eccesso alla somma delle caratteristiche, ottenendo la
caratteristica del prodotto
63
Un esempio di moltiplicazione
0 0 1 0 1 1 0 1 0.203125
(1)s0.M2E4
N = (
0 1 0 1 1 0 0 1 1.125
• Moltiplicando le mantisse e sommando le caratteristiche si ottiene:
64
32
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
65
• Rango
g finito dei numeri rappresentabili
pp
Qualunque sia la codifica utilizzata, esistono sempre il più
grande ed il più piccolo numero rappresentabile
I limiti inferiore e superiore del rango di rappresentazione
dipendono sia dal tipo di codifica, sia dal numero di bit utilizzati
Se il risultato di un’operazione non appartiene al rango dei
numeri rappresentabili, si dice che si è verificato un overflow
(un underflow
underflow, più precisamente, se il risultato è più piccolo
del più piccolo numero rappresentabile)
66
33
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
67
34
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
A 01000001
3 00110011
$ 00100100
69
• Quando
Q si scambiano dati,, deve essere noto il tipo
p di codifica
utilizzato
70
35
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
Codifica ASCII
36
Laboratorio CAD e Informatica T – CdL Ing. Ambiente e Territorio
Prof. Ing. Alfredo Liverani
32 20 SPACE 48 30 0 64 40 @ 80 50 P 96 60 ` 112 70 p
33 21 ! 49 31 1 65 41 A 81 51 Q 97 61 a 113 71 q
34 22 ” 50 32 2 66 42 B 82 52 R 98 62 b 114 72 r
35 23 # 51 33 3 67 43 C 83 53 S 99 63 c 115 73 s
36 24 $ 52 34 4 68 44 D 84 54 T 100 64 d 116 74 t
37 25 % 53 35 5 69 45 E 85 55 U 101 65 e 117 75 u
38 26 & 54 36 6 70 46 F 86 56 V 102 66 f 118 76 v
39 27 ’ 55 37 7 71 47 G 87 57 W 103 67 g 119 77 w
40 28 ( 56 38 8 72 48 H 88 58 X 104 68 h 120 78 x
41 29 ) 57 39 9 73 49 I 89 59 Y 105 69 i 121 79 y
42 2A * 58 3A : 74 4A J 90 5A Z 106 6A j 122 7A z
43 2B + 59 3B ; 75 4B K 91 5B [ 107 6B k 123 7B {
44 2C , 60 3C < 76 4C L 92 5C \ 108 6C l 124 7C |
45 2D - 61 3D = 77 4D M 93 5D ] 109 6D m 125 7D }
46 2E . 62 3E > 78 4E N 94 5E ^ 110 6E n 126 7E ~
47 2F / 63 3F ? 79 4F O 95 5F _ 111 6F o 127 7F DEL
Nota:: il valore numerico di una cifra può essere calcolato come differenza del
Nota
(es. ‘5’‘0’ = 53
suo codice ASCII rispetto al codice ASCII della cifra 0 (es. 5348 = 5)
74
37