Aritmetica del calcolatore - Giacomo...
-
Upload
trinhduong -
Category
Documents
-
view
212 -
download
0
Transcript of Aritmetica del calcolatore - Giacomo...
Architettura degli Elaboratori 04 – Aritmetica del calcolatore
Pagina 2
Numeri a precisione finita
- con un numero finito di cifre
- non godono della proprietà di chiusura
- le violazioni creano due situazioni distinte:
- overflow
- underflow
Architettura degli Elaboratori 04 – Aritmetica del calcolatore
Pagina 3
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
Architettura degli Elaboratori 04 – Aritmetica del calcolatore
Pagina 4
Sistemi di numerazione in base fissa
Architettura degli Elaboratori 04 – Aritmetica del calcolatore
Pagina 5
Sistemi di numerazione in base fissa
Architettura degli Elaboratori 04 – Aritmetica del calcolatore
Pagina 6
Sistemi di numerazione in base fissa
Architettura degli Elaboratori 04 – Aritmetica del calcolatore
Pagina 7
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
Architettura degli Elaboratori 04 – Aritmetica del calcolatore
Pagina 10
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
Architettura degli Elaboratori 04 – Aritmetica del calcolatore
Pagina 11
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
Architettura degli Elaboratori 04 – Aritmetica del calcolatore
Pagina 12
Conversione tra basi
Esempio: convertire in base 2 il numero decimale 1492
- 210 = 1024 1 1024- 29 = 512 0- 28 = 256 1 1280 (1024 + 256)- 27 = 128 1 1408 (1024 + 256 + 128)- 26 = 64 1 1472 (1024 + 256 + 128 + 64)- 25 = 32 0- 24 = 16 1 1484 (1024 + 256 + 128 + 64 + 16)- 23 = 8 0- 22 = 4 1 1492 (1024 + 256 + 128 + 64 + 16 + 4)- 21 = 2 0- 20 = 1 0
149210
= 101110101002
Architettura degli Elaboratori 04 – Aritmetica del calcolatore
Pagina 13
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.
Architettura degli Elaboratori 04 – Aritmetica del calcolatore
Pagina 15
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
Architettura degli Elaboratori 04 – Aritmetica del calcolatore
Pagina 16
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).
Architettura degli Elaboratori 04 – Aritmetica del calcolatore
Pagina 18
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
Architettura degli Elaboratori 04 – Aritmetica del calcolatore
Pagina 19
Numeri binari negativi
- rappresentazione con modulo e segnoIl bit più significativo viene utilizzato come bit di segno (1 per il “–”, 0 per il “+”)
0 000 +01 001 +12 010 +23 011 +3
4 100 -05 101 -16 110 -27 111 -3
Architettura degli Elaboratori 04 – Aritmetica del calcolatore
Pagina 20
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 -1 + 4 = 3 011-2 -2 + 4 = 2 010-3 -3 + 4 = 1 001-4 -4 + 4 = 0 000
Architettura degli Elaboratori 04 – Aritmetica del calcolatore
Pagina 21
Numeri binari negativi
- rappresentazione in complemento a unoLa negazione di un numero si ottiene scambiando tutti gli 1 con 0 e viceversa, compreso il bit di segno
0 000 +01 001 +12 010 +23 011 +3
4 100 -35 101 -26 110 -17 111 -0
Architettura degli Elaboratori 04 – Aritmetica del calcolatore
Pagina 22
Numeri binari negativi
- rappresentazione in complemento a dueLa 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 000 +01 001 +1 -1 110 + 1 = 1112 010 +2 -2 101 + 1 = 1103 011 +3 -3 100 + 1 = 101
Architettura degli Elaboratori 04 – Aritmetica del calcolatore
Pagina 23
Numeri binari negativi
- rappresentazione in complemento a due
0. 0000 1111 + 1 = 10000 ( 0)1. 0001 1110 + 1 = 1111 (15)2. 0010 1101 + 1 = 1110 (14)3. 0011 1100 + 1 = 1101 (13)4. 0100 1011 + 1 = 1100 (12)5. 0101 1010 + 1 = 1011 (11)6. 0110 1001 + 1 = 1010 (10)7. 0111 1000 + 1 = 1001 ( 9)8. 1000 0111 + 1 = 1000 ( 8)
Architettura degli Elaboratori 04 – Aritmetica del calcolatore
Pagina 24
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 (-20) 0001010000010100 11101011 +
1 =11101100
Architettura degli Elaboratori 04 – Aritmetica del calcolatore
Pagina 25
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 + 00010011 + 1 = 1 =11101100 00010100
Architettura degli Elaboratori 04 – Aritmetica del calcolatore
Pagina 26
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
Architettura degli Elaboratori 04 – Aritmetica del calcolatore
Pagina 27
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
Architettura degli Elaboratori 04 – Aritmetica del calcolatore
Pagina 28
Rappresentazione in virgola mobile
La notazione scientifica permette di rappresentare numeri molto grandi o molto piccoli:
Allo stesso modo, un numero binario può essere rappresentato come:
976.000.000.000.000=9,76⋅1014
0,0000000000000976=9,76⋅10−14
±S⋅B±E
Architettura degli Elaboratori 04 – Aritmetica del calcolatore
Pagina 29
Rappresentazione in virgola mobile
±S⋅B±E
Architettura degli Elaboratori 04 – Aritmetica del calcolatore
Pagina 30
Rappresentazione in virgola mobile
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
±S⋅B±E
Architettura degli Elaboratori 04 – Aritmetica del calcolatore
Pagina 31
Rappresentazione in virgola mobilenotazione in eccesso
Consiste nel sommare la quantitàk è il numero di bit del campo esponente
Nel caso di 4 bit si ha:
+8 1111 -1 0110+7 1110 -2 0101+6 1101 -3 0100+5 1100 -4 0011+4 1011 -5 0010+3 1010 -6 0001+2 1001 -7 0000+1 1000 -8 -0 0111
2k−1−1