Informatica A (per gestionali) A.A. 2004/2005 Esercizi Cambiamenti di base, codifiche e operazioni binarie, algebra di Boole 1 Indice 1 Cambiamenti di base .................................................................................................................... 3 1.1 Naturali................................................................................................................................. 3 1.2 Interi ..................................................................................................................................... 3 2 Somma ......................................................................................................................................... 4 2.1 Naturali................................................................................................................................. 4 2.2 Interi ..................................................................................................................................... 4 3 Numeri reali ................................................................................................................................. 5 3.1 Virgola fissa ......................................................................................................................... 5 3.2 Virgola mobile ..................................................................................................................... 5 4 Algebra di Boole .......................................................................................................................... 6 4.1 Formule logiche ................................................................................................................... 6 1 Cambiamenti di base 1.1 Naturali Convertire i seguenti numeri naturali: 1) 1010011011012 in base 10, 8 e 16 2) 110011011112 in base 8 3) 11011011012 in base 16 4) 25510 in base 2, 8 e 16 Risposte: 1a) Applicando la sommatoria con p=10: 1010011011012 = 266910 1b) Dividendo in gruppi di tre: 1010011011012 101 001 101 1012 = 51558 1c) Dividendo in gruppi di quattro: 1010011011012 1010 0110 11012 = A6D16 2) Dividendo in gruppi di tre: 110011011112 011 001 101 1112 = 31578 3) Dividendo in gruppi di quattro: 11011011012 0011 0110 11012 = 36D16 4a) Applicando regola divisione: 25510 = 111111112 4b) Porto in base due e poi in ottale: 25510 = 111111112 011 111 1112 = 3778 4c) Porto in base due e poi in esadecimale: 25510 = 111111112 1111 11112 = FF16 1.2 Interi Ricavare m e convertire in base 2 i seguenti numeri interi, usando il CPL2: 1) –810 2) +810 Risposte: 1) m=4; –810 = 10002 2) m=5; +810 = 010002 Convertire in base 2, se possibile, i seguenti numeri interi, usando il CPL2 e con m=8 bit: 1) +12710 2) –12810 3) +12810 Risposte: 1) +12710 = 011111112 2) –12810 = 100000002 3) +12810 = non è possibile su 8 bit. Usando 8 bit posso convertire [-128 , +127]. 3 2 Somma 2.1 Naturali Convertire in binario e calcolare il risultato delle seguenti operazioni (m=7): 1) 1910 + 4510 2) 7410 + 5310 3) 7410 + 5410 Risposte: 1) 1910 + 4510 = 10000002 2) 7410 + 5310 = 11111112 3) 7410 + 5410 = 100000002 (cioè, ho un carry: risultato scorretto se uso 7 bit) 2.2 Interi Convertire in binario e calcolare il risultato delle seguenti operazioni (m=7): 1) +5410 +310 2) –5410 –310 3) –5410 –3210 4) +1910 +4510 Risposte: 1) +5410 +310 = 01110012 2) –5410 –310 = 10001112 3) –5410 –3210 = 01010102 (cioè, overflow: risultato scorretto su 7 bit) 4) +1910 +4510 = 10000002 (cioè, overflow: risultato scorretto su 7 bit) 4 3 Numeri reali 3.1 Virgola fissa Convertire in binario le parti frazionarie dei seguenti numeri decimali, usando n=4 bit. Calcolare, inoltre, l’errore : 1) 0,34110 2) 0,0210 Risposte: 1) 0,34110 0,01012 0,01012 = 0,312510 allora = 0,34110 – 0,312510 = 0,0285 2) 0,0210 0,00002 0,00002 = 010 allora = 0,0210 – 010 = 0,02 Convertire in binario i seguenti numeri decimali, usando m=8 e n=4 bit: 1) +127,5210 2) –74,1210 Risposte: 1) parte intera: +12710 = 011111112 parte frazionaria: 0,5210 = 0,10002 quindi, +127,5210 = 01111111,10002 2) parte intera: –7410 = 101101102 parte frazionaria: 0,121 = 0,00012 quindi, –74,1210 = 10110110,00012 3.2 Virgola mobile Rappresentare, con p=b=10 ed in forma normalizzata: 1) 1234,55 2) 0,00072 3) –456 4) –0,00386 Risposte: 1) 1234,55 = 0,123455104 2) 0,00072 = 0,7210–3 3) –456 = –0,456103 4) –0,00386 = –0,38610–2 5 4 Algebra di Boole 4.1 Formule logiche Costruire le tabelle delle verità delle seguenti espressioni logiche: 1) D = NOT ((A OR C) OR B) OR (A AND C) 2) D = NOT (A OR NOT B) AND NOT C Risposte: 1) D = NOT ((A OR C) OR B) OR (A AND C) 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 D 1 0 0 0 0 1 0 1 2) D = NOT (A OR NOT B) AND NOT C 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 D 0 0 1 0 0 0 0 0 Disegnare il circuito equivalente delle seguenti espressioni logiche: 1) C = (A OR B) OR NOT (A AND B) 2) D = (A AND (B OR C)) AND NOT C 6 Risposte: 1) C = (A OR B) OR NOT (A AND B) A B C 2) D = (A AND (B OR C)) AND NOT C. Due soluzioni equivalenti: A B C D A B C D Ricavare l’espressione logica partendo dalla seguente tabella della verità (A, B, C ingressi; D uscita): A B C D 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 Risposta: D = (NOT A AND NOT B AND C) OR (NOT A AND B AND NOT C) OR (A AND NOT B AND NOT C) 7