Operazioni artimetiche Somma binaria Sottrazione binaria

Operazioni artimetiche
Somma binaria
Sottrazione binaria
ƒ La tabella di definizione è:
ƒ Per effettuare operazioni è necessario
conoscere la definizione del
comportamento per ogni coppia di
simboli
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ Per ogni operazione esiste una tabella
0
0
1
1
1
+
+
+
+
+
0
1
0
1
1
= 0
= 1
= 1
= 0
+1= 1
ƒ La tabella di definizione è:
ƒ
ƒ
ƒ
ƒ
con riporto di 1
con riporto di 1
1
-
0
0
1
1
=
=
=
=
0
1
0
1
con prestito di 1 dal
bit di peso superiore
ƒ Esempi
ƒ Esempi
Fondamenti di Informatica
0
1
1
0
Fondamenti di Informatica
2
Fondamenti di Informatica
3
Esempio (underflow)
Moltiplicazione e divisione
Overflow e Underflow
ƒ Si utilizzano le stesse procedure:
Supponiamo di lavorare con interi senza segno
ƒ Sono condizioni in cui si ha un errore
nella rappresentazione del risultato
ƒ per la moltiplicazione:
somma e scorrimento
ƒ per la divisione:
differenza e scorrimento
Eseguiamo 12 * 15
15
Se eseguiamo prima la moltiplicazione
ƒ Generalmente la rappresentazione è
formata da un numero finito di bit: se si
supera tale limite si ha errore
ƒ Esempi
12 * 15 = 180
180/15 = 12
ok!
Ma se eseguiamo prima la divisione
12/15 = 0 (non posso rappresentare numeri < 1)
Fondamenti di Informatica
4
Rappresentazione dei numeri
nei calcolatori
5
Numeri positivi
ƒ Tale limite dipende da:
ƒ intervallo di variabilità
ƒ occupazione di memoria
Fondamenti di Informatica
………
Fondamenti di Informatica
6
ƒ Esistono diverse possibilità:
ƒ modulo e segno:
ƒ bit più significativo: positivo (0) e negativo (1)
ƒ esistono due rappresentazioni per lo ‘0’
ƒ complemento a 2:
ƒ per definizione il complemento a 2 di X è 2 n -X
ƒ unica rappresentazione dello ‘0’
ƒ Esempio:
-1 <=> 11111111
ƒ Esempio: somma modulo 16
7
0 * 15 = 0
Numeri negativi
ƒ La rappresentazione di numeri positivi
non crea problemi
ƒ Si può avere overflow se il risultato
delle operazioni richiede un numero
maggiore di bit di quanto disponibile
ƒ Esiste un limite al numero di bit
impiegati per rappresentare un numero
Fondamenti di Informatica
Fondamenti di Informatica
8
Fondamenti di Informatica
9
Uso dei numeri negativi
ƒ Modulo e segno:
ƒ Sia dato un numero di bit n
ƒ i numeri che si possono rappresentare sono
n
nel range [0 - 2 -1]
ƒ si vuole calcolare A-B
n
ƒ si sostituisce -B con (2 -B)
n
ƒ si ottiene A+(2 -B)
ƒ La sottrazione si esegue mediante una somma!
ƒ Complemento a due:
ƒ la somma algebrica non genera problemi
10
Rappresentazione numeri reali
ƒ I numeri reali rappresentabili in un calcolatore sono
in realtà numeri razionali che approssimano i numeri
reali con un certo grado di precisione
ƒ Per rappresentare un numero reale è sufficiente
giustapporre due numeri (un intero e un frazionario)
es: 011011.01
ƒ Nella notazione in virgola fissa si assume che la
posizione della virgola sia fissa in un preciso punto
all'interno della sequenza
Fondamenti di Informatica
13
Virgola mobile
Fondamenti di Informatica
11
ƒ Necessita di un segno per la mantissa e
uno per l’esponente
16
ƒ I numeri negativi hanno il bit più
significativo a 1
Fondamenti di Informatica
12
Virgola mobile
ƒ I numeri reali sono nel range [-∞ ÷ +∞]
ƒ Talvolta è necessaria una rappresentazione estesa sulla retta dei reali
ƒ E’ la risposta alla necessitá di manipolare
numeri di ordini di grandezza diversi
ƒ Numeri espressi nella forma:
WW
X.YYY * 10
ƒ con 3 simboli [+/-], X, Y, Z ∈ {0,1,…9}
è possibile rappresentare -999 ÷ +999
[+/-] 99
ƒ oppure 9 * 10
[+/-] 99
ƒ oppure [+/-] 9 * 10
Fondamenti di Informatica
ƒ X: parte intera
ƒ Y: parte frazionaria (precisione)
ƒ W: esponente (ordine di grandezza)
14
ƒ si sceglie di avere la seguente relazione:
0≤M<1
ƒ l’esponente è espresso in complemento a B
(talvolta in eccesso 127 )
ƒ la mantissa è espressa in modulo e segno
Fondamenti di Informatica
Fondamenti di Informatica
15
Virgola mobile
ƒ Forma normalizzata:
ƒ M: mantissa
ƒ B: base
ƒ E: esponente
ƒ i numeri positivi sono rappresentati in
modulo e segno
ƒ i numeri negativi sono rappresentati dal
complemento a 2 del corrispondente numero
positivo
Rappresentazione numeri reali
Virgola mobile
ƒ Nomenclatura:
E
A= M*B
Fondamenti di Informatica
ƒ Esprimendo i numeri su n bit:
ƒ Motivazione:
ƒ la somma algebrica di numeri positivi e
negativi può generare problemi
ƒ servono sistemi hardware specifici per la
gestione corretta del formato
Fondamenti di Informatica
Complemento a 2
Complemento a 2
17
ƒ Esempi usando: B=10, 2 cifre
all’esponente e 8 alla mantissa:
ƒ
+1
ƒ
-63517,8
ƒ -0,00063517,8
-13
ƒ
-8,75 * 10
0
1
1
1
01
05
97
88
10000000
63517800
63517800
87500000
Fondamenti di Informatica
18
Virgola mobile
Virgola mobile
ƒ Moltiplicazione e divisione:
ƒ Approssimazioni:
ƒ Somma e sottrazione:
ƒ si moltiplica o si dividono le mantisse in
modo consueto
ƒ si sommano o si sottraggono gli esponenti
ƒ si normalizza
ƒ Esempio: 10,4 * 200 =
0 02 10400000 * 0 03 20000000 =
0 05 02080000 = 0 04 20800000
Fondamenti di Informatica
Virgola mobile
ƒ
ƒ
ƒ
ƒ
19
34,56 + 0,005 =
0 02 3456 + 0 98 5000 =
0 02 3456 + 0 02 0000 =
0 02 3456 = 34,56
ƒ La precisione è data dal numero di cifre della
mantissa:
ƒ
si uguagliano gli esponenti
le mantisse vengono sommate
aggiustamento in caso di traboccamento
Esempio: 10,4 + 2 =
0 02 10400000 + 0 01 20000000 =
0 02 10400000 + 0 02 02000000 =
0 02 12400000 = 12,4
Fondamenti di Informatica
ƒ Doppia precisione: doppia lunghezza della
mantissa (range invariato, precisione raddoppiata)
20
Fondamenti di Informatica
21