Comments
Description
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