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'