FONDAMENTI DI INFORMATICA 1 Tabelle di Verità Tabelle di Verità

Università degli Studi di Cagliari
Corso di Laurea in Ingegneria Biomedica
Tabelle di Verità
FONDAMENTI DI INFORMATICA 1
Operatori di assorbimento
http://www.diee.unica.it/~marcialis/FI1
X
Y
X+Y
X*Y
X+(X*Y)
X*(X+Y)
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
A.A. 2007/2008
Docente: Gian Luca Marcialis
ESERCIZI
Algebra di Boole
Codifica binaria dell’informazione
Laboratorio di Informatica - A.A. 2006/07 - Ing. Gian Luca Marcialis
Tabelle di Verità
Un esempio più complesso :
Uso delle proprietà dell’algebra booleana
Estensione del teorema di
De-Morgan:
[(X AND Y) OR NOT Y] AND [(X OR Z) AND NOT Y’]
X Y Z
Y’
Z’
X*Y
X+Z
X*Y+Z’
0 0 0
1
1
0
0
1
0
0
0 0 1
1
0
0
1
0
1
0
0 1 0
0
1
0
0
1
0
0
0 1 1
0
0
0
1
0
0
0
1 0 0
1
1
0
1
1
1
1
1 0 1
1
0
0
1
0
1
0
1 1 0
0
1
1
1
1
0
0
1 1 1
0
0
1
1
1
0
0
Laboratorio di Informatica - A.A. 2006/07 - Ing. Gian Luca Marcialis
2
X+Z*Y’ Risultato
A+B+C =
(A+B)+C =
[(A+B)’ * C’]’ =
[A’ * B’ * C’ ]’
Associatività della somma
Teorema di De Morgan
Teorema di De Morgan
Dunque: [A + B + C ]’ = A’ * B’ * C’
3
Laboratorio di Informatica - A.A. 2006/07 - Ing. Gian Luca Marcialis
4
Uso delle proprietà dell’algebra booleana
Uso delle proprietà dell’algebra booleana
Proprietà distributiva
A*(B+C) = (A*B)+(A*C)
A* (B’ + A’) + B’ *(A’ + B) = (A*B’) + (A*A’) + B’*A’ + B’*B = B’
A
A B
0 0
B’ + A’
A’ + B
1
1
A*(B’+A’)
0
B’*(A’+B)
1
Risultato
B
C
A*(B+C)
(A*B)
(A*C)
(A*B)+(A*C)
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0 1
1
1
0
0
0
0
1
0
0
0
0
0
0
1 0
1
0
1
0
1
1
0
1
1
0
1
1
1 1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
Laboratorio di Informatica - A.A. 2006/07 - Ing. Gian Luca Marcialis
5
Laboratorio di Informatica - A.A. 2006/07 - Ing. Gian Luca Marcialis
Esercizi
6
Conversione da decimale a binario
Conversione di un numero decimale intero: 93
A + (B*C’*D’) = …
(A*B)+(A*B’) = …
Si usa il metodo delle divisioni successive
93 : 2
46 : 2
23 : 2
11 : 2
5:2
2:2
= 46
= 23
= 11
=5
=2
=1
resto = 1
resto = 0
resto = 1
resto = 1
resto = 1
resto = 0
resto = 1
Si inverte l’ordine in cui si sono ottenuti i resti.
Risultato
93 decimale = 1011101 binario
Laboratorio di Informatica - A.A. 2006/07 - Ing. Gian Luca Marcialis
7
Laboratorio di Informatica - A.A. 2006/07 - Ing. Gian Luca Marcialis
8
Conversione da decimale a binario
Conversione da decimale a binario
Conversione di un numero frazionario: 0.26343
Un altro esempio: 233
Si usa il metodo delle moltiplicazioni successive
Si usa il metodo delle divisioni successive
233 : 2
116 : 2
58 : 2
29 : 2
14 : 2
7:2 =3
3:2 =1
Risultato
= 116 resto = 1
= 58
resto = 0
= 29
resto = 0
= 14
resto = 1
=7
resto = 0
resto = 1
resto = 1
resto = 1
0.263430 * 2
0.526860 * 2
0.053720 * 2
0.107440 * 2
0.214880 * 2
0.429760 * 2
0.859520 * 2
0.719040 * 2
= 0.526860
= 0.053720
= 0.107440
= 0.214880
= 0.429760
= 0.859520
= 0.719040
= 0.438080
over = 0
over = 1
over = 0
over = 0
over = 0
over = 0
over = 1
over = 1
Si mantiene l’ordine in cui si sono ottenuti i valori interi
Risultato
0.26343 decimale = 0. 01000011 binario
233 decimale = 11101001 binario
Laboratorio di Informatica - A.A. 2006/07 - Ing. Gian Luca Marcialis
9
Conversione da decimale a binario
10
Conversione da decimale a binario
Conversione di un numero con parte intera e parte
frazionaria:
Si converte la parte intera col metodo delle divisioni
successive
Si converte la parte frazionaria col metodo delle
moltiplicazioni successive
Si uniscono i due risultati
Laboratorio di Informatica - A.A. 2006/07 - Ing. Gian Luca Marcialis
Laboratorio di Informatica - A.A. 2006/07 - Ing. Gian Luca Marcialis
11
Esempio: 423.25
Parte intera:
423 d = 110100111 b
Parte frazionaria
0.25 d = 00111111 b
423.25 d = 110100111. 00111111
Laboratorio di Informatica - A.A. 2006/07 - Ing. Gian Luca Marcialis
12
Complemento a due
Complemento a due
Trovare la rappresentazione in complemento a due
(a 5 bit) del numero con segno: -6
Verifica: -x = -2N + C2
Nel nostro caso : N = 5
Data la rappresentazione binaria del numero 6:
6 d = 00110 b
-6 = -2^5 + 11010 = -32 + 26 = -6
Si inverte la rappresentazione: 11001
E si somma 1:
11010
Laboratorio di Informatica - A.A. 2006/07 - Ing. Gian Luca Marcialis
13
Es.1 Conversione da decimale a binario
Convertire il numero decimale 397.125
rappresentazione in virgola mobile
in binario e darne la
Utilizzando il metodo delle divisioni successive si converte dapprima la parte intera
− 397 : 2
− 198 : 2
= 198
= 99
resto = 1
resto = 0
− 99 : 2
= 49
resto = 1
−
−
−
−
−
−
= 24
= 12
=6
=3
=1
resto = 1
resto = 0
resto = 0
resto = 0
resto = 1
resto = 1
49 : 2
24 : 2
12 : 2
6:2
3:2
Laboratorio di Informatica - A.A. 2006/07 - Ing. Gian Luca Marcialis
14
Successivamente si converte la parte frazionaria
− 0.125000 * 2
= 0.250
over = 0
− 0.250000 * 2
= 0.500
over = 0
− 0.500000 * 2
− 0.000000 * 2
= 0.000
= 0.000
over = 1
over = 0
( 0.125 )d = ( 0.001 ) b
Dunque la rappresentazione binaria del numero decimale 397.125 è
( 397 )d = ( 110001101 )b
Laboratorio di Informatica - A.A. 2006/07 - Ing. Gian Luca Marcialis
110001101.001
E la sua rappresentazione in virgola mobile risulta
1.1001101001 x 28
15
Laboratorio di Informatica - A.A. 2006/07 - Ing. Gian Luca Marcialis
16
Es.2 Rappresentazione in virgola mobile
Scrivere 200.375 in binario con la rappresentazione in virgola mobile
(200)10= (11001000)2
(0.375)10 = (.011)2
200 : 2 = 100
100 : 2 = 50
50 : 2 = 25
25 : 2 = 12
12 : 2 = 6
6 :2=3
3 :2=1
1 :2=0
0.375
0.75
0.5
0
0
0
1
0
0
1
1
x 2 = 0.75
x 2 = 0.5
x2=0
0
1
1
Es.3 Complemento a due
Scrivere l’espressione binaria in complemento a due del
numero decimale -9 utilizzando 5 cifre binarie.
Convertendo il numero 9 in binario si ottiene ( 9 )d = ( 01001 )b
Invertiamo questo risultato e sommiamo 1
10110 + 00001 = 10111
Eseguiamo la verifica: ( 10111 )b = ( 23 )d
-X = -25 + 23 = -32 + 23 = -9
11001000.011 = 1.1001000011 x 2111
Laboratorio di Informatica - A.A. 2006/07 - Ing. Gian Luca Marcialis
Es.4 Complemento a due
Scrivere il numero -15 in complemento a due (5 bit)
Soluzione:
Innanzitutto converto 15 in binario:
15 : 2 = 7
1
7 :2=3
1
3 :2=1
1
1 :2=0
1
=> (15)10 = (01111)2
Faccio l'inverso: (01111)' = 10000
Sommo 1: 10001
Verifica: (10001)2 = (17)10
Applico la formula: -X = - 25 + 17 = -32 + 17 = -15
18
Es.5 Algebra booleana
Mediante l’uso delle regole dell’algebra booleana semplificare la
relazione A * (AC)’ + A[ B + (BC)’]
Applicando la regola di De Morgan ai termini (AC)’ e (BC)’ otteniamo
A *( A’ + C’) + A( B + B’ + C’)
Applicando la distributività della moltiplicazione al primo termine e la proprietà
dell’elemento complementare al secondo termine otteniamo
(A*A’) + (A*C’) + A(1+C’)
Applicando ora la proprietà dell’elemento complementare al primo termine e quella
dell’elemento nullo all’ultimo termine otteniamo
Laboratorio di Informatica - A.A. 2006/07 - Ing. Gian Luca Marcialis
20
Tabella di verità
0 + AC’ + A*1
Verificare mediante le tabelle di verità che A*(AC)’ = AC’
Applicando la proprietà dell’elemento nullo otteniamo
AC’ + A
A
C
C’
AC
(AC)’
A*(AC)’
AC’
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
Ed infine per la proprietà dell’assorbimento otteniamo
A
Dunque
A * (AC)’ + A[ B + (BC)’] = A
Laboratorio di Informatica - A.A. 2006/07 - Ing. Gian Luca Marcialis
21
Laboratorio di Informatica - A.A. 2006/07 - Ing. Gian Luca Marcialis
Tabella di verità
Es.6 Algebra booleana
Verificare mediante le tabelle di verità che A[B+(BC)’]=A
A
B
C
(BC)’
B+(BC)’
A[B+(BC)’]
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
Laboratorio di Informatica - A.A. 2006/07 - Ing. Gian Luca Marcialis
22
Scrivere la tabella di verità di: A * B' * (C + A')
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
C + A' (F1) F1 *
1
1
1
1
0
1
0
1
B' (F2)
1
1
0
0
0
1
0
0
Semplificare l'espressione:
0
A * B' * (C + A') = (A * B' * C) + (A * B' * A') = A * B' * C
23
F2 * A
0
0
0
0
0
1
0
1
Es.7 Algebra booleana
Utilizzando gli operatori AND, OR e NOT, scrivere
l'espressione booleana per:
Es.8 Algebra booleana
Il Rettore dell'Università ha deciso di creare un partito per le
prossime elezioni a cui possono partecipare studenti in corso e
professori, purché con la fedina penale pulita. Scrivere la seguente
funzione in algebra booleana usando gli operatori AND, OR e NOT
AUTOMOBILE = F( 3PORTE, 5PORTE, MOTORE, RUOTE)
ISCRITTO = F(STUDENTE,FUORICORSO,PROFESSORE,CRIMINI)
Soluzione:
Soluzione:
AUTOMOBILE = ( 3PORTE + 5PORTE ) * MOTORE * RUOTE
ISCRITTO = ((STUDENTE * FUORICORSO') + PROFESSORE) * CRIMINI'