...

Numeri-Danese

by user

on
Category: Documents
30

views

Report

Comments

Transcript

Numeri-Danese
Rappresentazione dei numeri positivi e negativi
•
Esiste un problema: come rappresentare i numeri negativi
•
Prima soluzione: rappresentazione in Modulo e Segno (anche
detta Binario Naturale)
Si utilizza un bit per rappresentare il segno del numero considerato
0  + (numero positivo)
1  - (numero negativo)
Se consideriamo un byte, rimangono ora 7 bit per il modulo del
numero: i numeri rappresentabili sono perciò [0-127]
+/-
b6
b5
b4
b3
b2
b1
b0
Università di Pavia - corso di Calcolatori Elettronici
1
Rappresentazione dei numeri positivi e negativi
Consideriamo per
semplicità solo 4 bit.
In modulo e segno:
+/-
b2
b1
b0
In valore assoluto:
b3
b2
b1
b0
Significato in modulo
e segno
Rappresentazione
binaria
Significato in
valore assoluto
+7
0 111
7
+6
0 110
6
+5
0 101
5
+4
0 100
4
+3
0 011
3
+2
0 010
2
+1
0 001
1
+0
0 000
0
-0
1 000
8
-1
1 001
9
-2
1 010
10
-3
1 011
11
-4
1 100
12
-5
1 101
13
-6
1 110
14
-7
1 111
15
Università di Pavia - corso di Calcolatori Elettronici
2
Rappresentazione dei numeri in Modulo e Segno
Numero 7
6
5
4
3
2
1
Rappresentazione
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
-1
-2
-3
-4
-5
-6
-7
Università di Pavia - corso di Calcolatori Elettronici
3
Rappresentazione in modulo e segno: problemi
•
Addizione e sottrazione sono le operazioni di cui si deve disporre per poter
realizzare qualsiasi operazione aritmetica più complessa
•
Si supponga che il calcolatore abbia una “Unità Aritmetica” che realizzi
indipendentemente le due operazioni.
•
Di fronte ad una somma algebrica, il calcolatore dovrebbe:
– confrontare i due segni
– se uguali, attivare il circuito di addizione
– se diversi, identificare il maggiore (in valore assoluto) ed attivare il
circuito di sottrazione
– completare il risultato con il segno corretto
•
I passi indicati non sono eseguibili contemporaneamente perché ognuno
dipende dai precedenti
•
In pratica per effettuare somma e sottrazione si ricorre ad un unico circuito,
utilizzando un metodo che permette di evitare le operazioni di confronto
Università di Pavia - corso di Calcolatori Elettronici
4
Complemento alla base di un numero
• Nella rappresentazione in complemento alla base con n cifre
le bn combinazioni rappresentano numeri positivi e negativi.
• In particolare:
le combinazioni da 0 a bn:2 - 1 rappresentano i numeri positivi,
rispettando la usuale rappresentazione posizionale;
Le combinazioni da bn:2 fino a bn – 1 rappresentano i numeri
negativi, con la seguente definizione:
dato un numero positivo X, il suo corrispondente negativo è
dato da:
bn-X
Università di Pavia - corso di Calcolatori Elettronici
5
Complemento alla base – 1 di un numero
• Nella rappresentazione in complemento alla base – 1 con n
cifre le bn combinazioni rappresentano numeri positivi e
negativi.
• In particolare:
le combinazioni da 0 a bn:2 - 1 rappresentano i numeri positivi,
rispettando la usuale rappresentazione posizionale;
Le combinazioni da bn:2 fino a bn – 1 rappresentano i numeri
negativi, con la seguente definizione:
dato
un
numero
positivo X, il suo corrispondente negativo è dato da:
(bn-1)-X
Università di Pavia - corso di Calcolatori Elettronici
6
Complemento alla base
b=2, n=5
b=2, n=7
Positivi da 0 a 01111
Positivi da 0 a 0111111
Negativi da 10000 a 11111
Negativi da 1000000 a 1111111
X = 01011; trovo -X
X=0011000; trovo -X
100000-
10000000-
01011=
0011000=
10101
1101000
Regola pratica:
partendo dal bit meno significativo, si riportano invariati tutti i
bit fino al primo bit a 1 compreso; si complementano i rimanenti bit (0  1,
1  0)
Università di Pavia - corso di Calcolatori Elettronici
7
Complemento alla base -1
X=36, b=10, n=2
in complemento alla base -1 è: 99 - 36 = 63
Si ottiene complementando a 9 ogni singola cifra
X=01011, b=2, n=5
-X in complemento alla base -1 è: (25 - 1) - X = (100000 - 1) - X =
11111 - 01011 = 10100
Si ottiene complementando ogni singolo bit (0  1, 1  0)
Università di Pavia - corso di Calcolatori Elettronici
8
Rappresentazione in complemento: Riepilogo
•
Rappresentazione in complemento a 2: i numeri positivi sono
rappresentati dal loro modulo e hanno il bit più significativo (segno)
posto a 0. I numeri negativi sono rappresentati dalla quantità che
manca al numero positivo per arrivare alla base elevata al numero di
cifre utilizzate, segno compreso. Pertanto i numeri negativi hanno il
bit del segno sempre a 1
•
Metà delle configurazioni sono perciò riservate ai numeri positivi e
metà ai numeri negativi
•
Discorsi analoghi possono essere fatti per basi diverse da 2: in base
10 un numero è negativo se la prima cifra è  5, in base 8 se  4, in
base 16 se  8
Università di Pavia - corso di Calcolatori Elettronici
9
Rappresentazione in complemento alla base
Con n bit a disposizione:
•
Il numero minimo rappresentabile è -2n-1
•
Il numero massimo rappresentabile è 2n-1 - 1
•
-1 è rappresentato da tutti 1 qualunque sia il numero di bit
considerato
•
Il numero può essere interpretato considerando il bit più significativo
con segno negativo
b3
b2
b1
b0
N= - b3  23 + b2  22 + b1  21 + b0 20
Università di Pavia - corso di Calcolatori Elettronici
10
Utilità del complemento alla base
•
Con la tecnica del complemento si può utilizzare un solo circuito per
effettuare sia l’addizione, sia la sottrazione
•
Operiamo in base 10 e vogliamo calcolare A – B.
•
Si supponga di conoscere il risultato dell’operazione 10 - B (complemento a
10 di B). Allora:
A - B = A + (10 - B) a condizione che si trascuri il riporto
•
Analogo discorso con k cifre purché si disponga del risultato dell’operazione
10k – B (complemento a 10k). Si ricordi sempre di fissare il numero di cifre
•
Se operiamo in base 2, con k cifre:
A - B = A + (2k - B) a condizione che si trascuri il riporto
•
Se si utilizza la tecnica del complemento alla base -1 occorre sommare il
riporto al risultato finale
Università di Pavia - corso di Calcolatori Elettronici
11
Operazioni aritmetiche in complemento
Esempi con 6 cifre binarie
Complemento a 2
Complemento a 1
19 + (-17)
19 + (-17)
010011
010011
101111
101110
1 0 0 0 0 1 0 (+2)
1000001
1
0 0 0 0 1 0 (+2)
Università di Pavia - corso di Calcolatori Elettronici
12
Operazioni aritmetiche in complemento
Esempi con 6 cifre binarie
Complemento a 2
Complemento a 1
(-17) + (-2)
(-17) + (-2)
101111
101110
111110
111101
1 1 0 1 1 0 1 (-19)
1101011
1
1 0 1 1 0 0 (-19)
Università di Pavia - corso di Calcolatori Elettronici
13
Operazioni aritmetiche in complemento
Esempi con 6 cifre binarie
19 + 17
010011+
010001=
1 0 0 1 0 0 (-28)
Si sono sommati due numeri positivi e si è ottenuto un numero negativo. Il
risultato corretto (+36) non è rappresentabile in complemento a 2 con 6 bit
(massimo numero rappresentabile = + 31)
Il fenomeno si chiama traboccamento o overflow
Università di Pavia - corso di Calcolatori Elettronici
14
Operazioni aritmetiche in complemento
Esempi con 6 cifre binarie
Complemento a 2
Complemento a 1
(-19) + (-17)
(-19) + (-17)
101101+
101100+
101111=
101110=
1 0 1 1 1 0 0 (28)
1011010+
1=
0 1 1 0 1 1 (27)
Si sono sommati due numeri negativi e si è ottenuto un numero positivo. Il
risultato corretto (-36) non è rappresentabile in complemento a 2 con 6 bit
(minimo numero rappresentabile = -32 in C.a 2 e –31 in C. a 1)
Il fenomeno si chiama traboccamento o overflow
Università di Pavia - corso di Calcolatori Elettronici
15
Somma di numeri di N bit in complemento a 2
0  A  2N-1 -1
0  B  2N-1 -1
-2N-1  A < 0
0  B  2N-1-1
0  A  2N-1 -1
-2N-1  B < 0
-2N-1  A < 0
-2N-1  B < 0
0  S  2N-2
-2N-1  S < 2N-1-1
-2N-1  S < 2N-1-1
-2N  S < 0
Sommando due
numeri positivi si
ha overflow se si
ottiene un
numero negativo.
S potrebbe non
essere
rappresentabile
in N bit ma lo è
sempre in N+1
bit.
Non ci sono mai
problemi di
overflow.
Non ci sono mai
problemi di
overflow.
Sommando due
numeri negativi
si ha overflow se
si ottiene un
numero positivo.
S potrebbe non
essere
rappresentabile
in N bit ma lo è
sempre in N+1
bit.
Università di Pavia - corso di Calcolatori Elettronici
16
Esempi di somma di numeri binari
01111000+
01101001=
11100001
11111011+
11110000=
11101011
Complemento a 2
+ 120 +
+ 105 =
- 31
Overflow=1
- 5+
- 16 =
- 21
Overflow=0
Valore Assoluto
120 +
105 =
225
Riporto=0
251 +
240 =
235
Riporto=1
Università di Pavia - corso di Calcolatori Elettronici
17
Tecnica dell’eccesso
+8
1111
+7
1110
+6
1101
+5
1100
+4
1011
+3
1010
+2
1001
+1
1000
0
0111
-1
0110
-2
0101
-3
0100
-4
0011
-5
0010
-6
0001
-7
0000
• Usato per scopi particolari
• Viene sommata una
costante fissa, ad esempio
con n bit pari a 2n-1-1, al
numero dotato di segno da
rappresentare; il numero
risultante viene convertito
in binario
• Con questa convenzione il
bit di segno è invertito
Università di Pavia - corso di Calcolatori Elettronici
18
Fly UP