Fondamenti di Informatica I - A.A. 1999/2000 Soluzioni Esercizi Proposti - Settimana 3 Consegna entro il 12/11/1999 (nelle ore di laboratorio della propria squadra) Autori: Marcello La Rosa & Francesco Fronte 1. Effettuare le seguenti conversioni di base nell'ambito della rappresentazione dei numeri senza segno: 3758.43 base 10 --> base 2 10101.0111 base 2 --> base 10 3746.4 base 8 --> base 16 (H) 1321 base 4 --> base 5 177 base 9 --> base 2 SOLUZIONI (3758.43)10 = (111010101110.0110111)2 (10101.0111)2 = (21.4375)10 (3746.4)8 = (011 111 100 110 . 100)2 = (0111 1110 0110 . 1000)2 = (7E6.8)H | | | | | | | | | 3 7 4 6 4 7 E=14 6 8 (1321)4 = (121)10 = (441)5 (177)9 = (151)10 = (10010111)2 2. Per quale (o quali) base b valgono le seguenti uguaglianze: (240)b = (70)10 (7C9)b = (2C)b^2 (142)b + (202)b = (344)b (12)b * (12)b = (210)b (171)b^(0.5) = (13)b Dove i simboli + e * indicano rispettivamente le operazioni di somma e prodotto e ^ l'operazione di elevamento a potenza. SOLUZIONI (240)b = (70)10 2b^2 + 4b^1 + 0b^0 = 70 2b^2 + 4b = 70 b2 + 2b - 35 = 0 b1 = 5 , b2 = -7 L'unica soluzione accettabile risulta essere b = 5 (7C9)b = [(2C)b]^2 (7C9)b = 7b^2 + 12b + 9 [(2C)b]^2 = 4b^2 + 144 + 48b 7b^2 + 12b + 9 = 4b^2 + 144 + 48b b2 - 12b - 45 = 0 b1 = 15 , b2 = -3 L'unica soluzione accettabile risulta essere b = 15 (142)b + (202)b = (344)b b^2 + 4b + 2b^2 + 2 = 3b^2 + 4b + 4 4 = 4 Identita' valida per qualsiasi b. Poiche' b deve essere una base: per ogni b > 4 (12)b * (12)b = (210)b (b+2) (b+2) = 2b^2 + b b^2 + 4b + 4 = 2b^2 + b b2 - 3b -4 = 0 b1 = 4 , b2 = -1 L'unica soluzione accettabile risulta essere b=4 (171b)1/2 = 13b (b2 + 7b + 1)^1/2 = b + 3 b^2 + 7b +1 = b^2 + 9 + 6b b = 8 3. Eseguire le seguenti operazioni in virgola fissa nell'ambito della rappresentazione dei numeri in binario puro: + 01101.111 + 0010.0011 + 1011 - 111.101 + 10011.1 + 0.00011 + 1101.10101 - 111.011 + 11010 - 111.01 - 11010.0111 SOLUZIONI 01101.1110 + 00010.0011 = 10000.0001 01101.1110 + 00010.0011 = __________ 10000.0001 1011.000 - 0111.101 = 0011.011 1011.000 - 0111.101 = ________ 0011.011 010011.10000 + 000000.00011 + 001101.10101 = 100001.01000 010011.10000 + 000000.00011 = ____________ 010011.10011 + 001101.10101 = ____________ 100001.01000 11010.000 - 00111.011 = 10010.101 11010.000 - 00111.011 = _________ 10010.101 -000111.0100 -011010.0111 = -100001.1011 000111.0100 + 011010.0111 = ___________ 100001.1011 4. Convertire i seguenti numeri dalla base 10 nelle rappresentazioni in complemento a uno, in complemento a due e in modulo e segno su 10 bit. Indicare inoltre, in ciascun caso, qual e` il numero minimo di bit necessari per una corretta rappresentazione. 312 -512 86 -232 512 ___________________________________________________________________________________________________ | Base 10| Modulo/Segno | Bit minimo |Complemento a 1| Bit minimo |Complemento a 2| Bit minimo| |________|______________|_______________|_______________|_______________|_______________|___________| | | | | | | | | | 312 | 0100111000 | 10 | 0100111000 | 10 | 0100111000 | 10 | | | | | | | | | | -512 | non rappre. | 11 | non rappre. | 11 | 1000000000 | 10 | | | | | | | | | | 86 | 0001010110 | 8 | 0001010110 | 8 | 0001010110 | 8 | | | | | | | | | | -232 | 1011101000 | 9 | 1100010111 | 9 | 1100011000 | 9 | | | | | | | | | | 512 | non rappre. | 11 | non rappre. | 11 | non rappre. | 11 | |________|______________|_______________|_______________|_______________|_______________|___________| 5. Dati i seguenti numeri in base 10, convertirli nella rappresentazione in complemento a due sul minor numero di cifre binarie con una precisione almeno uguale a 1/50. Effettuare quindi l'operazione descritta, indicando quando il risultato e` da ritenersi corretto, utilizzando lo stesso numero di bit necessario per la rappresentazione. + 123 + 12093 - 0.30003 - 0.0111 - 0.344 + 134.566 + 13.653 - 212.742 - 47.123 - 31.341 SOLUZIONI Per la precisione, considerare la disequazione 2^-n <= 1/50 => 2^n >= 50, n=6 Dove il simbolo <= sta per minore o uguale, >= sta per maggiore o uguale a) (+123)10 = (000000001111011)2 (+12093)10 = (010111100111101)2 000000001111011 + 010111100111101 = _______________ 010111110111000 b) (+0.30003)10 = (0.010011)2 (-0.30003)10 = (1.101101)2 (+0.0111)10 = (0.000000)2 (-0.0111)10 = (0.000000)2 1.101101 + 0.000000 = ________ 1.101101 c) (+0.344)10 = (00000000.010110)2 (-0.334)10 = (11111111.101010)2 (+134.566)10 = (01000110.100100)2 11111111.101010 + 01000110.100100 = ________________ 101000110.001110 - 1 scaricato - d) (+13.653)10 = (000001101.101001)2 (+212.742)10 = (011010100.101111)2 (-212.742)10 = (100101011.010001)2 000001101.101001 + 100101011.010001 = ________________ 100111000.111010 e) (+47.123)10 = (0101111.000111)2 (+31.341)10 = (0011111.010101)2 0101111.000111 + 0011111.010101 = ______________ 1001110.011100 Risultato non corretto per OVERFLOW