Aritmetica del calcolatore

annuncio pubblicitario
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Aritmetica
del
calcolatore
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Numeri a precisione finita
-
con un numero finito di cifre
-
non godono della proprietà di chiusura
-
le violazioni creano due situazioni distinte:
-
overflow
-
underflow
Pagina 2
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Numeri a precisione finita
-
non vale la regola associativa
a + (b – c) = (a + b) – c
Per esempio con a = 700, b = 400, c = 300
-
non vale la regola distributiva del prodotto
a x (b – c) = a x b – a x c
Per esempio con a = 5, b = 210, c = 195
Pagina 3
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Sistemi di numerazione in base fissa
Pagina 4
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Sistemi di numerazione in base fissa
Pagina 5
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Sistemi di numerazione in base fissa
Pagina 6
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Conversione tra basi
Da base binaria a base ottale
-
raggruppare il numero binario a gruppi di tre cifre
(partendo dalla meno significativa) e sostituire il
corrispondente valore ottale di ogni gruppo
Da base binaria a base esadecimale
-
raggruppare il numero binario a gruppi di quattro cifre
(partendo dalla meno significativa) e sostituire il
corrispondente valore esadecimale di ogni gruppo
Pagina 7
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Conversione tra basi
Pagina 8
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Conversione tra basi
Pagina 9
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Conversione tra basi
Dalla base ottale alla base binaria
-
sostituire ad ogni cifra ottale l'equivalente numero binario
espresso con tre bit
Dalla base esadecimale alla base binaria
-
sostituire ad ogni cifra esadecimale l'equivalente numero
binario espresso con quattro bit
Pagina 10
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Conversione tra basi
Dalla base decimale alla base binaria (primo metodo)
-
sottrarre al numero decimale la più grande potenza di 2
minore del numero stesso; ripetere il procedimento con la
differenza ottenuta. Il numero binario si ottiene inserendo 1
nelle posizioni corrispondenti alla potenze di 2 utilizzate, 0
nelle altre posizioni
Pagina 11
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Conversione tra basi
Esempio: convertire in base 2 il numero decimale 1492
-
210 = 1024
29 = 512
28 = 256
27 = 128
26 = 64
25 = 32
24 = 16
23 = 8
22 = 4
21 = 2
20 = 1
1
0
1
1
1
0
1
0
1
0
0
1024
1280 (1024 + 256)
1408 (1024 + 256 + 128)
1472 (1024 + 256 + 128 + 64)
1484 (1024 + 256 + 128 + 64 + 16)
1492 (1024 + 256 + 128 + 64 + 16 + 4)
149210 = 101110101002
Pagina 12
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Conversione tra basi
Dalla base decimale alla base binaria (secondo metodo)
-
dividere il numero per 2. Il quoziente viene scritto sotto il
numero e il resto (0 o 1) viene scritto accanto al quoziente. Si
ripete il procedimento finché non si arriva a 0. Il numero
binario si ottiene dalla colonna dei resti partendo dal basso.
Pagina 13
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Conversione tra basi
Pagina 14
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Conversione tra basi
Dalla base binaria alla base decimale (primo metodo)
-
sommare le potenze di 2 che corrispondono alle posizioni
degli 1 nel numero binario
Per esempio:
10110 = 1x24 + 0x23 + 1x22 + 1x21 + 0x20 =
= 16 + 0 + 4 + 2 + 0 =
= 22
Pagina 15
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Conversione tra basi
Dalla base binaria alla base decimale (secondo metodo)
-
scrivere il numero binario in colonna, con in basso il bit più
significativo. L'elemento della riga i-esima è il doppio della
riga (i-1)-esima più il bit della riga (0 o 1).
Pagina 16
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Conversione tra basi
Pagina 17
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Conversione tra basi
La conversione da decimale a ottale (o esadecimale) si realizza:
-
passando dalla conversione in binario
-
mediante sottrazioni successive di potenze di 8 o 16
Pagina 18
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Numeri binari negativi
-
rappresentazione con modulo e segno
Il bit più significativo viene utilizzato come bit di segno (1
per il “–”, 0 per il “+”)
0
1
2
3
000
001
010
011
+0
+1
+2
+3
4
5
6
7
100
101
110
111
-0
-1
-2
-3
Pagina 19
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Numeri binari negativi
-
rappresentazione in notazione in eccesso di 2m-1
Viene rappresentato la somma del numero con 2m-1. Nel
caso di 3 bit, il sistema è in eccesso di 4 e memorizza un
numero dopo avergli sommato 4
Esempio:
-1
-2
-3
-4
-1 + 4 = 3
-2 + 4 = 2
-3 + 4 = 1
-4 + 4 = 0
011
010
001
000
Pagina 20
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Numeri binari negativi
-
rappresentazione in complemento a uno
La negazione di un numero si ottiene scambiando tutti gli 1
con 0 e viceversa, compreso il bit di segno
0
1
2
3
000
001
010
011
+0
+1
+2
+3
4
5
6
7
100
101
110
111
-3
-2
-1
-0
Pagina 21
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Numeri binari negativi
-
rappresentazione in complemento a due
La negazione di un numero si ottiene:
- scambiando tutti gli 1 con 0 e viceversa (compreso il bit di
segno)
- aggiungendo 1 al risultato (il resto sul bit più significativo
viene ignorato)
- per l'estensione del segno si aggiungono nuovi bit a
sinistra uguali al bit di segno originale
0
1
2
3
000
001
010
011
+0
+1
+2
+3
-1 110 + 1 = 111
-2 101 + 1 = 110
-3 100 + 1 = 101
Pagina 22
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Numeri binari negativi
-
rappresentazione in complemento a due
0.
1.
2.
3.
4.
5.
6.
7.
8.
0000
0001
0010
0011
0100
0101
0110
0111
1000
1111
1110
1101
1100
1011
1010
1001
1000
0111
+
+
+
+
+
+
+
+
+
1
1
1
1
1
1
1
1
1
= 10000
= 1111
= 1110
= 1101
= 1100
= 1011
= 1010
= 1001
= 1000
( 0)
(15)
(14)
(13)
(12)
(11)
(10)
( 9)
( 8)
Pagina 23
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Numeri binari negativi
-
rappresentazione in complemento a due
(estensione del segno)
Permette di trasformare un intero rappresentato con n bit
nello stesso intero rappresentato con m bit (m > n)
Per i numeri negativi in complemento a 2 bisogna replicare
il bit di segno fino a raggiungere la nuova posizione
(20)
10100
00010100
(-20)
00010100
11101011 +
1 =
11101100
Pagina 24
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Numeri binari negativi
-
rappresentazione in complemento a due
L'opposto di un numero si ottiene:
- eseguendo il complemento a 2 della stringa
- sommando 1 al numero ottenuto
(20)
00010100
11101011 +
1 =
11101100
00010011 +
1 =
00010100
Pagina 25
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Addizione e sottrazione in complemento a due
-
in caso di numeri negativi bisogna prenderne il
complemento a due
Addizione (attenzione all'overflow)
1100 +
–4
0100 =
4
---------------10000
0
Pagina 26
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Addizione e sottrazione in complemento a due
-
per sottrarre un numero (sottraendo) da un altro numero
(minuendo) si considera l'opposto del sottraendo e lo si
somma al minuendo
Sottrazione
2 – 7 = -5
2 + (-7) = -5
0010 +
1001 =
----------1011
Pagina 27
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Rappresentazione in virgola mobile
La notazione scientifica permette di rappresentare numeri molto
grandi o molto piccoli:
976.000.000.000.000=9,76⋅1014
0,0000000000000976 =9,76⋅10−14
Allo stesso modo, un numero binario può essere rappresentato
come:
±S⋅B±E
Pagina 28
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Rappresentazione in virgola mobile
±S⋅B±E
Pagina 29
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Rappresentazione in virgola mobile
±S⋅B±E
Il campo dell'esponente (8 bit in precisione semplice)
permetterebbe di esprimere numeri compresi tra 0 e 255 ma, per
tenere conto degli esponenti negativi si utilizza la notazione in
eccesso (o polarizzata)
Si possono così esprimere numeri compresi tra -128 e 127
Pagina 30
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Rappresentazione in virgola mobile
notazione in eccesso
k −1
Consiste nel sommare la quantità 2 −1
k è il numero di bit del campo esponente
Nel caso di 4 bit si ha:
+8
+7
+6
+5
+4
+3
+2
+1
0
1111
1110
1101
1100
1011
1010
1001
1000
0111
-1
-2
-3
-4
-5
-6
-7
-8
0110
0101
0100
0011
0010
0001
0000
-
Pagina 31
Architettura degli Elaboratori
04 – Aritmetica del calcolatore
Rappresentazione in virgola mobile
notazione in eccesso
Pagina 32
Scarica