Aritmetica del calcolatore - Giacomo...

32
Aritmetica del calcolatore Architettura degli Elaboratori 04 – Aritmetica del calcolatore

Transcript of Aritmetica del calcolatore - Giacomo...

Aritmeticadel

calcolatore

Architettura degli Elaboratori 04 – Aritmetica del calcolatore

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 8

Conversione tra basi

Architettura degli Elaboratori 04 – Aritmetica del calcolatore

Pagina 9

Conversione tra basi

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 14

Conversione tra basi

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 17

Conversione tra basi

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

Architettura degli Elaboratori 04 – Aritmetica del calcolatore

Pagina 32

Rappresentazione in virgola mobilenotazione in eccesso