L aritmetica del computer Fondamenti di Informatica su UD 2 Aritmetica del computer ESERCITAZIONE RAPPRESENTAZIONE NUMERI NEL COMPUTER Corso di Laurea in Ingegneria Informatica e dell Automazione A.A. 2012-2013 2 Semestre Prof. Giovanni Pascoschi 2 Interi Esercizio 1 Ricavare il numero di bit necessari m e convertire in base 2 i seguenti numeri interi, usando il CPL 2 : 8 10 +8 10 m=4; 8 10 = 1000 2 infatti (8) 10 = (1000) 2 (0111) CPL1 =(1000) CPL2 m=5; +8 10 = 01000 2 3 Interi Esercizio 2 Convertire in base 2, se possibile, i seguenti numeri interi, usando il CPL 2 e con un numero di bit m=8 bit: +127 10 128 10 +128 10 +127 10 = 01111111 2 128 10 = 10000000 2 10000000 in CPL 1 0111111in CPL 2 = CPL 1 +1 = 10000000 +128 10 = non è possibile su 8 bit. Usando 8 bit posso convertire [- 128, +127]. 4
Reali virgola fissa Esercizio 3 Convertire in binario le parti frazionarie dei seguenti numeri decimali, usando n=5 bit decimali. Calcolare, inoltre, l errore ε: 0,34110 65,8210 0,34110 * 2= 0,68220 0 0,68220 * 2= 1,36440 1 0,36440 * 2= 0,72880 0 0,72880 * 2= 1,45760 1 0,45760 * 2= 0,91520 0 (0,01010) 2 = 1*2-2 +1*2-4 = 0,25 + 0,0625 = 0,3125 ε = 0,34110 0,3125 = 0,02860 5 Reali virgola fissa (65) 10 = (1000001) 2 0,8210 * 2= 1,6420 1 0,6420 * 2= 1,2840 1 0,2840 * 2= 0,5680 0 0,5680 * 2= 1,1360 1 0,1360 * 2 = 0,2720 0 (0,11010) 2 = 1*2-1 +1*2-2 +1*2-4 = 0,5+0,25 + 0,0625 = 0,8125 ε = 65,8210 65,8125 = 0,0085 65,8210 1000001,11010 6 Reali virgola fissa Esercizio 4 Convertire in binario il seguente numero decimale, usando m=8 bit (intera) e n=4 bit (decimale): 74,12 10 Risposta: parte intera: 74 10 74 10 =0100101010110101 CPL 1 10110110 CPL 2 parte frazionaria: 0,12 10 = 0,0001 2 74,12 10 = 10110110,0001 2 (0,0001) 2 = 1*2-4 = 0,0625 = 0,0625 ε = 74,12 74,0625 = 0,0575 Reali virgola mobile Esercizio 5 Rappresentare in base 10 ed in forma normalizzata: 1234,55 0,00072 456 0,00386 1234,55 = 0,123455 10 4 0,00072 = 0,72 10 3 456 = 0,456 10 3 0,00386 = 0,386 10 2 7 8
Reali virgola mobile Esercizio 6 Un numero relativo e rappresentato in virgola mobile secondo lo standard IEEE 754 su 32 bit nel seguente modo: s = 1 ; e = 10000111 ; m = 11011000000000000000000 Ricavare il corrispondente valore decimale. Soluzione Dato che: e = (10000111) 2 = (135) 10 Si ha: N = ( 1) s 2 (e 127) 1.m = 1 2 135 127 1.11011 = 1 2 8 1.11011 = 111011000 2 = (2 8 + 2 7 + 2 6 + 2 4 + 2 3 ) 10 = 472 10 Reali virgola mobile Esercizio 7 Convertire il seguente numero decimale in virgola mobile in singola precisione secondo lo standard IEEE 754: 23.375 10 N10 = 23.375 10 = 10111.011 2 = 1.0111011 2 2 4 s = = 1 e = 4 car = 4 + 127 = 131 10 = 10000011 2 m = 1.0111011 = 0111011 (con hidden bit) NFP = 1 10000011 0111011000... = C1BB0000 16 9 10 Esercizi per casa Esercizi per casa Esercizio 1 Adottando una codifica in virgola fissa su 10 bit, di cui 4 bit frazionari, si effettuino le seguenti conversioni di base: 23,750 dalla base 10 alla base 2 0110101101 dalla base 2 alla base 10 Esercizio 2 Adottando una codifica in virgola fissa su 8 bit, di cui 4 bit frazionari, si effettuino le seguenti conversioni di base: 5,3 dalla base 10 alla base 2 0110,1011 dalla base 2 alla base 10 Esercizio 3 Rappresentare il numero decimale reale 3.3 in base 2, con la seguente precisione: precisione assolutaɛ= 2-2 Esercizio 4 Sia data la stringa binaria 010101. Dire a quali numeri decimali corrisponda nelle tre ipotesi che sia codificata in binario puro, modulo e segno o complemento a due. 11 12
Esercizi per casa Esercizio 5 Convertire i seguenti numeri decimali in virgola mobile in singola precisione secondo lo standard IEEE 754: 127.25 10 +131.5 10 Esercizio 6 Siano dati i seguenti numeri binari in virgola mobile in singola precisione secondo lo standard IEEE 754, espressi in base hex: BE900000 16 438AA000 16 Calcolare il corrispondente valore in base decimale. L aritmetica del computer ESERCITAZIONE ARITMETICA NEL COMPUTER 13 14 Esercizio 8 Convertire in binario e calcolare il risultato delle seguenti operazioni (numero di bit m=7): 19 10 + 45 10? 74 10 + 53 10? 74 10 + 54 10? 19 10 + 45 10 = 10011 2 +101101 2 =1000000 2 10011+ 101101= ------------- 1000000 74 10 + 53 10 = 1001010 2 +110101 2 =1111111 2 1001010+ 110101= ----------- 1111111 74 10 + 54 10 = 10000000 2 (cioè, ho un carry: risultato scorretto se uso 7 bit) 15 16
Esercizio 9 Convertire in binario e calcolare il risultato delle seguenti operazioni (m=7): +54 10 +3 10-54 10 3 10-54 10 +3 10 54 10 32 10 +19 10 +45 10 +54 10 +3 10 = 0110110 2 +0000011 2 =0111001 2 = (57) 10-54 10-3 10 = -0110110 2-0000011 2 = (1001010) CPL2 +(1111101) CPL2 = (11000111) CPL2 = -57 10 100 1010+ 111 1101= --------------- (1100 0111) CPL2 = (100 0110) CPL1 = -(0111001) 2 = -57 10 011 0110+ 000 0011= ---------------------------- 011 1001 17 18 54 10-3 10 = 0110110 2-0000011 2 = 0110110+(1111101) CPL2 = (0110011) = 51 10 011 0110+ 111 1101= --------------- (1011 0011) = (51) 10-54 10-32 10 = -0110110 2-0100000 2 = (1001010) CPL2 +(1100000) CPL2 = = (10101010) 2 = overflow perché il segno 0 è discorde dai due segni degli operandi 100 1010+ 110 0000= -------------- 1010 1010 19 20
+19 10 +45 10 = 0010011 2 +0101101 2 = (1000000) 2 = overflow perché il risultato ha sovrapposto il bit del segno segno 1 discorde dai due operandi 001 0011+ 010 1101= -------------- 100 0000 Esercizi per casa Esercizio 7 Si considerino i due seguenti numeri binari, rappresentati in complemento a 2 su 8 bit, e per comodita qui riportati in base 16: A = C3 16 e B = 4A 16. Si calcoli, eseguendo le operazioni in binario, il risultato delle operazioni A+B e A-B. Si riporti il risultato dell operazione in binario CPL2 su 8 bit. Si dica in ciascuno dei casi se si verifica una condizione di overflow. Esercizio 8 Dati i numeri A = 11010011 e B = 01110011, entrambi codificati in CPL2 su 8 bit, si eseguano direttamente in complemento a due le operazioni A+B ed A-B, indicando in quali casi si verifica una condizione di overflow, e perche. 21 22 rio della lezione Fine della lezione su UD2 Rappresentazione numeri nel computer Aritmetica del computer Domande? 23 24