Operazioni artimetiche Somma binaria Sottrazione binaria
Transcript
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