1 1 Rappresentazione dei numeri PH. 3.1, 3.2, 3.3 2 Tipi di numeri Numeri interi, senza segno calcolo degli indirizzi numeri che possono essere solo non negativi Numeri con segno positivi negativi Numeri in virgola mobile calcoli numerici differenti gradi di precisione precisione singola (IEEE) doppia precisione (IEEE) precisione quadrupla
22
Embed
Rappresentazione dei numeridepoli/fi2ae/slides_pw/old-lucidi-06/mips/N2... · i 16 bit nemo significativi restano invariati copia il segno (bit più significativo) nei rimanenti 16
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
1
Rappresentazione dei numeri
PH. 3.1, 3.2, 3.3
2
Tipi di numeri
Numeri interi, senza segnocalcolo degli indirizzinumeri che possono essere solo non negativi
Numeri con segnopositivinegativi
Numeri in virgola mobilecalcoli numericidifferenti gradi di precisione
Procedimento che a partire da una frazione F < 1 ottiene la rappresentazione di F in binario (o una approssimazione)Sequenza ripetuta di moltiplicazioni:
Moltiplichiamo F per 2Si ottiene una parte intera (che può essere 0 oppure 1) ed una parte decimale F1La parte intera rappresenta il primo bit più significativomentre F1 viene moltiplicato per 2Si ottiene una parte intera (che può essere 0 oppure 1) ed una parte decimale F2La parte intera rappresenta il secondo bit più significativomentre F2 viene moltiplicato per 2… fino a quando Fi vale 0 oppure decidiamo di fermarci…
8
15
Conversione numeri frazionari
0.81 ⋅ 2 = 1.62 parte int 1
0.62 ⋅ 2 = 1.24 parte int 1
0.24 ⋅ 2 = 0.48 parte int 0
0.48 ⋅ 2 = 0.96 parte int 0
0.96 ⋅ 2 = 1.92 parte int 1
0.92 ⋅ 2 = 1.84 parte int 1
0 . 1 1 0 0 1 1
Sequenza ripetuta di moltiplicazioni, . . . si prende la parte intera
Esempio, convertire 0.81 :
16
Conversione numeri frazionari
Il processo di conversione di una frazione non necessariamente termina
Una frazione decimale con un numero finito di cifre può avere un numero infinito di cifre nella rappresentazione binaria
possiamo terminare il procedimento quando riteniamo di aver raggiunto una precisione sufficiente
9
17
Interi con segno
Interi con segno
18
Interi con segno
Finora abbiamo solamente considerato la rappresentazione di interi positivi, per rappresentare interi con segno:
tre possibili rappresentazioni sono:
la rappresentazione con modulo e segnocon modulo e segno
la rappresentazione in complemento a unoin complemento a uno
la rappresentazione in complemento a duein complemento a due
10
19
Rappresentazione con modulo e segno
2
102
10
( 2 ) 0
( 2 ) 1
ni
i ni
ni
i ni
N c se c
N c se c
−
−=
−
−=
= ⋅ =
= − ⋅ =
∑
∑
La rappresentazione in modulo e segnoin modulo e segno usa il bit più significativo per indicare il segno:(++) se bit31 = 00,(--) se bit31 = 11
Il valore del numero risulta essere:
20
AddizioneAddizione e sottrazionesottrazione complicata dasegni dei numerimodulo dei numeri
DoppiaDoppia rappresentazione dello zerozero:infatti lo zero può essere rappresentato (es.: su 8 bit)
sia da 0 000 0000che da 1 000 0000
Non va bene ! Vorremmo…una rappresentazione che faciliti la progettazione della
ALUche non deve essere complicata da problemi dovuti alla rappresentazione
Alcuni problemi del “modulo e segno”
11
21
Rappresentazione in complemento 2
Rappresentazione in complemento 2
22
Rappresentazione in complemento 2
( 1) ( 2) 3 2 0...n nc c c c c− −
21
10
2 ( )n
n in i
iV c c b
−−
−=
= − ⋅ + ⋅∑
Dato un numero in base 2 :
Il valore del numero espresso in complemento a due è :
Il bit più significativo assume peso negativo !
12
23
Rappresentazione in complemento 2
Poiche’ è :
Il numero è positivo positivo se il bit più significativo vale 00
Il numero è negativo negativo se il bit più significativo vale 11
a) Fissare il numero nn di cifre binarie da usare per la rappresentazione del numero convertito in binario
b) se XX è positivo :si converte XX in binario su gli n-1 bit meno significativisi pone il bit più significativo a 00
c) se XX è negativo :si converte in binario 22nn--11 + X+ X su gli n-1 bit meno significativisi pone il bit più significativo a 11
26
Conversione da decimale a binario
Esempio: convertire il numero X = -4 su n = 5 bit
convertiamo 2n-1 + X = 24 – 4 = 16 – 4 = 12 su n-1 = 4 bitotteniamo il risultato parziale 1 1 0 0
mettiamo il bit più significativo (il quinto) a 1otteniamo il risultato finale 1 1 1 0 0
14
27
Lavorare con il complemento a due
Espansione:ad es. passare da numeri a 16 bit a numeri a 32 bitrichiesto per operazioni con registri (32 bit) e operazioni immediate (16 bit)Estensione del segno
i 16 bit nemo significativi restano invariaticopia il segno (bit più significativo) nei rimanenti 16 bit
0000 0000 0000 0010 2
0000 0000 0000 0000 0000 0000 0000 0010
1111 1111 1111 1110 -2
1111 1111 1111 1111 1111 1111 1111 1110
28
Addizione binaria
PH 3.3
15
29
Esempio di addizione
0 1 0 1 1 +
1 0 0 1 0 =
1 1 1 0 1
0 0 1 0 riporti
Supponiamo di addizionare i due numeri binari 01100(1110) e 10010 (1810) :
30
Aritmetica complemento a due
Operazione di negazione
Negazione nell'aritmetica complemento a 2 :dato un numero AA in rappresentazione binaria complemento a due vogliamo ottenere ––AA (sempre in rapp.zione binaria)
Per ottenere la rappresentazione in complemento due di --AA(1) si complementa ogni cifra binaria di AA(2) si aggiunge 1 alla sequenza di bit cosi ottenuta
16
31
Operazione di negazione
Esempio, si vuole ottenere la negazione del numeroA = -62(nella rappresentazione binaria complemento 2 su 8 bit)
la rappresentazione su 8 bit di –62 è :
1 1 0 0 0 0 1 0
sommando 1 si ottiene il risultato :
0 0 1 1 1 1 0 1
0 0 1 1 1 1 1 0
il suo complemento bit a bit è :
32
Operazione di negazione, giustificazione
21
10
2 1 ( 2 )n
n in i
i
B c c−
−−
=
= − ⋅ + + ⋅∑
21
10
2 ( 2 )n
n in i
i
A c c−
−−
=
= − ⋅ + ⋅∑
21
110
( ) 2 1 ( ) 2n
n in in i
i
A B c c c c−
−−−
=
+ = − + ⋅ + + + ⋅∑
Supponiamo che AA (in complemento a 2) sia il numero da negare, il suo valore è:
Costruiamo BB (negazione di A) complementando i bit di AA ed aggiungendo 1, otteniamo:
Calcoliamo A + B; se vale A + B = 0A + B = 0 allora B = B = --AA
17
33
Operazione di negazione, giustificazione
21
110
( ) 2 1 ( ) 2n
n in in i
i
A B c c c c−
−−−
=
+ = − + ⋅ + + + ⋅∑
21 1 1
0
2 1 2 2 1 (2 1) 0n
n i n n
i
A B−
− − −
=
+ = − + + = − + + − =∑
( ) 1c c+ =Osservando che :
Dall'espressione:
Ricaviamo :
34
Operazione di negazione, osservazioni
Supponiamo di negare il numero A = 0A = 0(rappresentazione in complemento a 2 su 5 bit)
0 0 0 0 0la rappresentazione:
il complemento bit a bit: 1 1 1 1 1
sommando 1 : 1 1 1 1 1
1 1 1 1 10 0 0 0 1 +
1 0 0 0 0 0il bit di riporto viene ignorato !
18
35
Operazione di negazione, osservazioni
Se si prova a negare ne risulta:
1 0 0 0 0la rappresentazione:
il complemento bit a bit: 0 1 1 1 1
sommando 1 : 0 1 1 1 1
1 1 1 1 10 0 0 0 1 +
1 0 0 0 0
la negazione del numero non può essere rappresentata in complemento a 2 !
12n−−
36
Operazione di negazione, osservazioni
12n−−
corrispondente a : 1 0 0 . . . 0 0 0 0
Il massimo negativo è :
Il massimo positivo è : 12 1n −− −
corrispondente a : 0 1 1 . . . 1 1 1 1
Un numero negativo in più rispetto ai numeri positivi
Assimetria inevitabile, dovendo rappresentare: i positivi, lo zero, e i negativi con un numero 2n di configurazioni possibili
19
37
La regola di overflow
Nella somma di interi con segno rappresentati in complemento due si verifica un OVERFLOW se e solo se:
la somma di due interi positivi da come risultato un intero negativo
la somma di due interi negativi da come risultato un intero positivo
La somma di due operandi con segno opposto non può dare overflow; infatti: la somma è minore o uguale, in valore assoluto, di uno degli addendi degli addendi; es. -10 + 4 = -6
38
Somma e overflow (1)
Somma dei numeri 5 e 4 su n=4 bit ( max rappr. 23-1=7 )
0 1 0 1 +
0 1 0 0 =
1 0 0 1
overflow, la somma di due numeri positivi non può dare un negativo !
20
39
Somma e overflow (2)
Somma dei numeri -6 e -7 su n=4 bit ( min rappr. -23 = -8 )
l’ultimo bit di riporto viene ignorato
1 0 1 0 +
1 0 0 1 =
0 0 1 11
overflow, la somma di due numeri negativi non può dare un positivo !
40
Sottrazione
Per calcolare A – B si osserva cheA – B = A + (-B)
procedimento:
negazione di B
somma A + negazione di B
nella rappresentazione complemento 2 non è necessario un circuito apposito diverso da quello della somma per implementare in hardware la sottrazione !
21
41
Overflow sottrazione
Sottrazione implementata con negazione e sommaVale regola overflow somma
somma di due interi positivi con risultato un intero negativosomma di due interi negativi con risultato un intero positivo
Sottrazioneoperandi con lo stesso segno NO overflowoperandi segno diverso:
se risultato segno diverso dal minuendo SI overflow