2E Esercitazione UD2

Transcript

2E Esercitazione UD2
L’aritmetica del computer
Fondamenti di Informatica
ESERCITAZIONE
Esercitazione su UD 2
Aritmetica del computer
RAPPRESENTAZIONE NUMERI NEL
COMPUTER
Corso di Laurea in Ingegneria Informatica e dell’Automazione
A.A. 2012-2013
2° Semestre
Prof. Giovanni Pascoschi
Fondamenti di Informatica – A.A. 2012-2013
Esercitazione
2
Esercitazione
Interi
Interi
Esercizio 1
Ricavare il numero di bit necessari m e convertire in base 2 i
seguenti numeri interi, usando il CPL2:
–810
+810
Risposte:
m=4; –810 = 10002
m=5; +810 = 010002
a cura di Pascoschi Giovanni
infatti (8)10= (1000)2
Fondamenti di Informatica – A.A. 2012-2013
(0111)CPL1=(1000)CPL2
a cura di Pascoschi Giovanni
3
Esercizio 2
Convertire in base 2, se possibile, i seguenti numeri interi,
usando il CPL2 e con un numero di bit m=8 bit:
+12710
–12810
+12810
Risposte:
+12710 = 011111112
–12810 = 100000002
10000000 in CPL1 0111111 in CPL2 =
CPL1 +1 = 10000000
+12810 = non è possibile su 8 bit. Usando 8 bit posso convertire [128 , +127].
Fondamenti di Informatica – A.A. 2012-2013
a cura di Pascoschi Giovanni
4
Esercitazione
Esercitazione
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
Risposte:
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
Fondamenti di Informatica – A.A. 2012-2013
a cura di Pascoschi Giovanni
Reali virgola fissa
Risposte:
(65)10= (1000001)2
0,8210 * 2= 1,6420
0,6420 * 2= 1,2840
0,2840 * 2= 0,5680
0,5680 * 2= 1,1360
0,1360 * 2 = 0,2720
1
1
0
1
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
5
Esercitazione
Fondamenti di Informatica – A.A. 2012-2013
a cura di Pascoschi Giovanni
6
Esercitazione
Reali virgola fissa
Reali virgola mobile
Esercizio 4
Convertire in binario il seguente numero decimale, usando m=8
bit (intera) e n=4 bit (decimale):
–74,1210
Esercizio 5
Rappresentare in base 10 ed in forma normalizzata:
1234,55
0,00072
–456
–0,00386
Risposte:
1234,55 = 0,123455⋅⋅104
0,00072 = 0,72⋅⋅10–3
–456 = –0,456⋅⋅103
–0,00386 = –0,386⋅⋅10–2
Risposta:
parte intera: –7410 7410 =01001010 10110101 CPL 1
10110110 CPL2
parte frazionaria: 0,1210 = 0,00012
–74,1210 = 10110110,00012
(0,0001)2 = 1*2-4= 0,0625 = 0,0625
ε = 74,12 – 74,0625 = 0,0575
Fondamenti di Informatica – A.A. 2012-2013
a cura di Pascoschi Giovanni
7
Fondamenti di Informatica – A.A. 2012-2013
a cura di Pascoschi Giovanni
8
Esercitazione
Esercitazione
Reali virgola mobile
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 ・ 2135−127 ・ 1.11011
= −1 ・ 28 ・ 1.11011
= −1110110002 = −(28 + 27 + 26 + 24 + 23)10 = −47210
Fondamenti di Informatica – A.A. 2012-2013
Esercizio 7
Convertire il seguente numero decimale in virgola mobile in
singola precisione secondo lo standard IEEE 754:
−23.37510
N10 = −23.37510 = −10111.0112 = −1.01110112 ・ 24
s=−=1
e=4
car = 4 + 127 = 13110 = 100000112
m = 1.0111011 = 0111011 (con hidden bit)
NFP = 1| 10000011 | 0111011000 . . . = C1BB000016
9
a cura di Pascoschi Giovanni
Fondamenti di Informatica – A.A. 2012-2013
a cura di Pascoschi Giovanni
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 3
Rappresentare il numero decimale reale 3.3 in base 2, con la
seguente precisione:
• precisione assoluta Ɛ= 2-2
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
Fondamenti di Informatica – A.A. 2012-2013
a cura di Pascoschi Giovanni
11
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.
Fondamenti di Informatica – A.A. 2012-2013
a cura di Pascoschi Giovanni
12
Esercizi per casa
L’aritmetica del computer
Esercizio 5
Convertire i seguenti numeri decimali in virgola mobile in
singola precisione secondo lo standard IEEE 754:
−127.2510
+131.510
Esercizio 6
Siano dati i seguenti numeri binari in virgola mobile in singola
precisione secondo lo standard IEEE 754, espressi in base hex:
BE90000016
438AA00016
Calcolare il corrispondente valore in base decimale.
Fondamenti di Informatica – A.A. 2012-2013
a cura di Pascoschi Giovanni
13
Esercitazione
ESERCITAZIONE
ARITMETICA NEL COMPUTER
Fondamenti di Informatica – A.A. 2012-2013
a cura di Pascoschi Giovanni
Esercitazione
Somma
Somma
Esercizio 8
Convertire in binario e calcolare il risultato delle seguenti
operazioni (numero di bit m=7):
1910 + 4510 ?
7410 + 5310 ?
7410 + 5410 ?
Risposte:
1910 + 4510 = 100112+1011012=10000002
7410 + 5310 = 10010102+1101012=11111112
1001010+
110101=
----------1111111
10011+
101101=
------------1000000
7410 + 5410 = 100000002 (cioè, ho un carry: risultato scorretto se
uso 7 bit)
Fondamenti di Informatica – A.A. 2012-2013
14
a cura di Pascoschi Giovanni
15
Fondamenti di Informatica – A.A. 2012-2013
a cura di Pascoschi Giovanni
16
Esercitazione
Esercitazione
Somma
Esercizio 9
Convertire in binario e calcolare il risultato delle seguenti
operazioni (m=7):
+5410 +310
-5410 –310
-5410 +310
–5410 –3210
+1910 +4510
Risposte:
+5410 +310 = 01101102+00000112=01110012= (57)10
Somma
-5410 -310 = -01101102-00000112= (1001010)CPL2+(1111101)CPL2 =
(11000111) CPL2 = -5710
100 1010+
111 1101=
--------------(1100 0111)CPL2 = (100 0110)CPL1 = -(0111001)2 = -5710
011 0110+
000 0011=
----------------------------
011 1001
Fondamenti di Informatica – A.A. 2012-2013
a cura di Pascoschi Giovanni
17
Esercitazione
Fondamenti di Informatica – A.A. 2012-2013
18
Esercitazione
Somma
Somma
5410 -310 = 01101102-00000112= 0110110+(1111101)CPL2 =
(0110011) = 5110
-5410 -3210 = -01101102-01000002= (1001010)CPL2+(1100000)CPL2 =
= (10101010) 2 = overflow perché il segno 0 è discorde dai due
segni degli operandi
011 0110+
111 1101=
--------------(1011 0011) = (51)10
Fondamenti di Informatica – A.A. 2012-2013
a cura di Pascoschi Giovanni
100 1010+
110 0000=
-------------1010 1010
a cura di Pascoschi Giovanni
19
Fondamenti di Informatica – A.A. 2012-2013
a cura di Pascoschi Giovanni
20
Esercitazione
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 = C316 e B = 4A16. 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.
Somma
+1910 +4510 = 00100112+01011012= (1000000) 2 = overflow
perché il risultato ha sovrapposto il bit del segno segno 1
discorde dai due operandi
001 0011+
010 1101=
-------------100 0000
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’.
Fondamenti di Informatica – A.A. 2012-2013
a cura di Pascoschi Giovanni
21
Sommario della lezione
Fondamenti di Informatica – A.A. 2012-2013
a cura di Pascoschi Giovanni
22
a cura di Pascoschi Giovanni
24
Fine della lezione
Esercitazione su UD2
Rappresentazione numeri nel computer
Aritmetica del computer
Fondamenti di Informatica – A.A. 2012-2013
Domande?
a cura di Pascoschi Giovanni
23
Fondamenti di Informatica – A.A. 2012-2013