Aritmetica in complemento a due. 29 settembre 2017

Documenti analoghi
Rappresentazione numeri con e senza segno ([PH] par. 2.4) Giovedì 1 ottobre 2015 (ore 9-13)

Interi positivi e negativi

Rappresentazione di numeri relativi (interi con segno) Rappresentazione di numeri interi relativi (con N bit) Segno e Valore Assoluto

Codifica binaria. Rappresentazioni medianti basi diverse

Lezione 3. I numeri relativi

1.2f: Operazioni Binarie

I.4 Rappresentazione dell informazione - Numeri con segno

Notazione posizionale. Codifica binaria. Rappresentazioni medianti basi diverse. Multipli del byte

04 Aritmetica del calcolatore

Informazione binaria: - rappresentazione dei numeri naturali e interi relativi -

Rappresentazione in complemento a 2: caratteristiche generali

AXO Architettura dei Calcolatori e Sistemi Operativi. aritmetica binaria intera

Unita aritmetica e logica. Input e output della ALU. Rappresentazione degli interi. Rappresentazione in modulo e segno. Aritmetica del calcolatore

Conversione binario-ottale/esadecimale. Conversione binario-ottale/esadecimale. Rappresentazione di Numeri Interi Positivi (numeri naturali)

CONVERSIONE BINARIO DECIMALE NB: Convertire in decimale il numero binario N = N =

Conversione di base. Conversione decimale binario. Si calcolano i resti delle divisioni per due

Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari

Aritmetica dei Calcolatori

Rappresentazione dei numeri interi in un calcolatore

Esercitazioni su rappresentazione dei numeri e aritmetica dei calcolatori

Rappresentazione e Codifica dell Informazione

Rappresentazione dei numeri interi in un calcolatore

Rappresentazione dei numeri interi in un calcolatore. Rappresentazione dei numeri

Corso di Calcolatori Elettronici I

Aritmetica binaria e circuiti aritmetici

Informatica, Informazione e Telecomunicazioni. La codifica dell informazione. Supporto e informazione. Il concetto di informazione

Informatica, Informazione e Telecomunicazioni. La codifica dell informazione. Il concetto di informazione. Supporto e informazione

Rappresentazione dell informazione. Rappresentazione dell informazione. Rappresentazione dell informazione. Codifica dei numeri

Esercitazioni su rappresentazione dei numeri e aritmetica. Interi unsigned in base 2

Numeri interi (+/-) Alfabeto binario. Modulo e segno

Rappresentazione dei numeri

NUMERI NATURALI: INTERVALLO DI VALORI RAPPRESENTABILI INFORMAZIONI NUMERICHE

Algoritmi Istruzioni che operano su dati. Per scrivere un programma è necessario. che l esecutore automatico sia in grado di.

Unità aritmetica e logica

Rappresentazioni numeriche

Esame di INFORMATICA (*) Operazioni Aritmetiche: Somma. Lezione 3. Operazioni Aritmetiche: Somma. Operazioni Aritmetiche: Somma

Conversione binario-decimale. Interi unsigned in base 2. Esercitazioni su rappresentazione. dei numeri e aritmetica

Rappresentazione dei Numeri

Rappresentazione in virgola mobile. 4 ottobre 2018

Interi unsigned in base 2. Esercitazioni su rappresentazione dei numeri e aritmetica. Conversione binario-decimale

Rappresentazione di numeri interi

Cap. 2 - Rappresentazione in base 2 dei numeri interi

1-Rappresentazione dell informazione

Rappresentazione dei numeri. Rappresentazione di insiemi numerici mediante insiemi finiti di stringhe di bit Problemi:

Numeri con segno ed in virgola

Esercitazioni di Reti Logiche. Lezione 1 Rappresentazione dell'informazione. Zeynep KIZILTAN zkiziltan@deis.unibo.it

Rappresentazione dei numeri in un calcolatore

Architettura degli elaboratori - 2 -

Rappresentazione in virgola mobile. 5 ottobre 2015

Codifica dei numeri interi con segno

Rappresentazione numeri relativi e reali

Risoluzione degli esercizi proposti dall 1 al 6

Codifica binaria: - numeri interi relativi -

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

N= a i b i. Numeri e numerali. Sistemi di Numerazione Binaria. Sistemi posizionali. Numeri a precisione finita

Rappresentazione. Notazione in complemento a 2. Complemento a due su 3 e 4 bit Complemento a due

Sistemi numerici: numeri con segno. Esercizi risolti

Rappresentazione dei numeri

Corso di Informatica

Programmazione I Paolo Valente /2018. Lezione 6. Notazione posizionale

Rappresentazioni numeriche

Esercitazione 1 del 10/10/2012

Rappresentazione dell informazione. Argomenti trattati: Codifica: Teoria generale. Proprietà di una codifica:

Appunti di informatica. Lezione 3 anno accademico Mario Verdicchio

Corso di Architettura degli Elaboratori

Abilità Informatiche e Telematiche

Argomenti trattati: Rappresentazione dell informazione. Proprietà di una codifica: Codifica: Teoria generale

Esercitazione del 05/03/ Soluzioni

Esercitazione del 03/03/ Soluzioni

La codifica. dell informazione

Anno Accademico Lezione 10 : Conversione di Base (p. 3) Lunedì 6 Dicembre 2010

Calcolatori Elettronici Parte III: Sistemi di Numerazione Binaria

Sistemi di Numerazione Binaria

Rappresentazione binaria

Rappresentazioni numeriche

Rappresentazione informazione ed elementi di aritmetica dei computer

Sistemi di Numerazione Binaria a i b i. a m a m-1... a 0. a -1 a a -k

La codifica delle informazioni numeriche ed alfanumeriche.

Sistemi di Numerazione Binaria

Esercitazione del 09/03/ Soluzioni

Sistemi di numerazione

Calcolatori Elettronici Parte II: Sistemi di Numerazione Binaria. Prof. Riccardo Torlone Università di Roma Tre

Rappresentazione dell'informazione

Rappresentazione binaria

Programmazione I Paolo Valente /2017. Lezione 6. Notazione posizionale

Appunti di informatica. Lezione 4 anno accademico Mario Verdicchio

Calcolo numerico e programmazione Rappresentazione dei numeri

Calcolatori: Sistemi di Numerazione

Fondamenti di Informatica

Esercitazione 1 del 07/10/2011

Rappresentazione delle frazioni proprie Aritmetica in binario Barbara Masucci

Fondamenti di Programmazione. Sistemi di rappresentazione

Aritmetica dei Calcolatori - Operazioni

Rappresentazione della informazione

La codifica. dell informazione. (continua) Codifica dei numeri. Codifica dei numeri. Sono stati pertanto studiati codici alternativi per

La codifica. dell informazione. Codifica dei numeri. (continua) Codifica dei numeri. Codifica dei numeri: il sistema decimale

Sistema Numerico Decimale

Calcolatori Elettronici Parte II: Sistemi di Numerazione Binaria. Prof. Riccardo Torlone Università di Roma Tre

Transcript:

Aritmetica in complemento a due 29 settembre 2017

Complemento a Due Differenza con il sistema posizionale: il peso del bit più significativo è negativo Il valore di b n-1 b n-2 b 0 è dato dalla relazione N 2 n 1 b n 1 n 2 i 0 2 i b i 00010010 = + 2 4 + 2= 18 10010010 = 2 7 + 2 4 + 2= 128+18 = 110 111111 = 2 5 + 2 4 + 2 3 + 2 2 + 2 1 + 2 0 = 2 5 + 2 5 1= 1 111101= 2 5 + 2 4 + 2 3 + 2 2 + 2 0 = 32 + 29 = 3

Positivi e negativi Osservazione: Il bit più significativo ci indica il segno: 0 significa positivo 1 significa negativo Esercizio Dimostrare che nella rappresentazione b n-1 b n-2 b 0 in complemento a due dell intero N: Se b n-1 = 0 allora N 0 Se b n-1 = 1 allora N < 0

Perché «complemento a 2»? Sia B= b n-1 b n-2 b 0 Se B 0 allora b n-1 =0 e il valore di b n-2 b 0 è uguale a B. Se B<0 allora b n-1 =1 e il valore di b n-2 b 0 Cioè il complemento a 2 n-1 di B. è uguale a 2 n-1 - B. Esempio: n=4; B=1011=-5; 011=3 = 8-5

Intervallo di rappresentabilità Numeri rappresentabili con n bit in Complemento a 2 minimo: 1000 000 = 2 n-1 Massimo: 0111..111 = 2 n-1 1 [ 2 n-1, 2 n-1 1 ]

Esempio con n=4 bit 0 000 = 0 0 001 = +1 0 010 = +2 0 011 = +3 0 100 = +4 0 101 = +5 0 110 = +6 0 111 = +7 Massimo=+7 minimo = 8 1 000 = 8 1 001 = 8 +1= 7 1 010 = 8+2 = 6 1 011 = 8+3 = 5 1 100 = 8+4 = 4 1 101 = 8+5 = 3 1 110 = 8+6 = 2 1 111 = 8+7 = 1 Intervallo di rappresentazione con 4 bit: [ 8, +7]

Vantaggi Una sola rappresentazione per lo zero L aritmetica è semplice: l algoritmo per l addizione è indipendente dal segno degli operandi Cambiare di segno/ ottenere l opposto è ancora semplice. La rappresentazione in complemento a 2 di un intero negativo si può ottenere trovando la rappresentazione in complemento a 2 del suo valore assoluto e calcolando poi l opposto La sottrazione si può fare sommando al minuendo l opposto del sottraendo

Cambiamento di segno: algoritmo 1 Algoritmo 1: Si esegue il complemento bit a bit o negazione (si trasforma ogni 1 in 0 e viceversa) Si somma 1 Esempio: Con 6 bit: 3 10 = 000011 Si esegue il complemento bit a bit 111100+ Si somma +1 1= 111101 111101= 2 5 + 2 4 + 2 3 + 2 2 + 2 0 = 32 + 29 = 3 10

Cambiamento di segno: algoritmo 2 Algoritmo 2: Partendo da destra si lasciano invariati tutti i bit fino al primo 1 compreso, poi si invertono i rimanenti Esempio: 12 10 = 00001100 11110011+ 1= 11110100 11110100 = 10100 = 2 4 + 2 2 = 16 + 4 = 12 10

Estensione del segno Per i numeri positivi si aggiungono 0 nella parte più significativa +18 = 00010010 = 2 4 + 2= 18 +18 = 00000000 00010010 = 2 4 + 2= 18 Per i numeri negativi si aggiungono 1 nella parte più significativa -18 = 101110= -2 5 + 2 3 + 2 2 +2= -32 +14=-18-18 = 1111 101110 = -2 9 +(2 8 + + 2 5 ) + 2 3 + 2 2 +2 = = -2 9 +(2 9-2 5 ) + 2 3 + 2 2 +2 = -2 5 + 2 3 + 2 2 +2= -18 Regola dell estensione del segno: Si completa la rappresentazione riportando a sinistra il bit più significativo.

Addizione in complemento a 2 La somma in complemento a 2 si calcola come nel caso binario tranne che: Si trascura l eventuale bit di riporto finale (c n ) Si deve controllare la consistenza dei segni: se la somma di positivi è positiva o la somma di due negativi è negativa allora il risultato è corretto. Altrimenti l operazione non poteva essere fatta perché c è traboccamento/overflow: il risultato non è rappresentabile con quel numero di bit. Dimostrazione del caso generale: facoltativa ([P] par. 6.2)

Esempio 1 (n=6 bit): 12 + 6 12 = 001100 6 = 000110 X0 01100 001100 + 000110 = 010010 Corretto! 010010= 2 4 + 2=18 12+6=18 Esempi Esempio 2 (n=6 bit): 25 + ( 13) 25 = 011001 13 = 110011 X1 10011 011001 + 110011 = 001100 Corretto! 001100= 2 3 + 2 2 =12 25 + ( 13)=12

Esempio 3 (n=6 bit): 13 + 23 13 = 001101 23 = 010111 X0 11111 001101 + 010111 = 100100 Overflow! 100100 = 2 5 + 2 2 = 28 13+23=36 non rappresentabile con 6 bit Esempi n=6 intervallo rappresentabilità [-32, 31] Esempio 4 (n=6 bit): 13 + ( 23) 13 = 110011 23 = 101001 X1 00011 110011 + 101001 = 011100 Overflow! 011100= 2 4 + 2 3 + 2 2 =28 13 + ( 23) = 36 non rappresentabile con 6 bit

Sottrazione in complemento a 2 Sottrazione Si calcola l opposto del sottraendo e si somma al minuendo a - b = a + (-b) Avremo quindi bisogno dei soli circuiti di somma e negazione dei bit

Cosa cambia nell addizione in complemento a due? c n s n c n-1 c i c 2 a n-1 a i a 2 a 1 a 0 + b n-1 b i b 2 b 1 b 0 = s n-1 s i s 2 c 1 s 1 s 0 Il contributo di c n-1 è sempre +c n-1 2 n-1. In binario (puro) il contributo di a n-1 è +a n-1 2 n-1, quello di b n-1 è +b n-1 2 n-1 e quello di s n-1 è +s n-1 2 n-1. Invece, in complemento a due, il contributo di a n-1 è a n-1 2 n-1, quello di b n-1 è b n-1 2 n-1 e quello di s n-1 è s n-1 2 n-1.

Correttezza dell algoritmo ([P] 6.2, facoltativo) A= a n-1 a n-2 a 0, B= b n-1 b n-2 b 0, A+B= s n-1 s n-2 s 0 1. A 0, B 0: se A+B 2 n-1 (overflow), s n-1 =1 (somma negativa!); altrimenti corretto 2. A<0, B<0: se A+B < 2 n-1 (overflow), s n-1 =0 (somma positiva!); altrimenti corretto ignorando l n-esimo riporto 3. A 0, B<0 e A B : corretto ignorando l n-esimo riporto 4. A 0, B<0 e A < B : corretto

Caso 1: A 0, B 0, n=4 bit (facoltativo) c 4 c 3 c 2 a 3 a 2 a 1 a 0 + b 3 b 2 b 1 b 0 = s 3 s 2 c 1 s 1 c 0 s 0 A= a 3 a 2 a 1 a 0, B= b 3 b 2 b 1 b 0 a 3 = b 3 = 0 s 2 s 1 s 0 2 3 1 =7 Se c è overflow allora A+B 2 3 =8, quindi c 3 = 1, s 3 = 1, c 4 = 0 Il risultato è negativo: non è corretto in complemento a due! 0 1 1 0 0 1 1 0 + 0 0 1 1 = 1 0 0 1 6 + 3 = Se non c è overflow allora A+B 7 quindi c 3 = 0, s 3 = 0, c 4 = 0 Risultato corretto. 9 in binario, ma -7 in complemento a due

Caso 1: A 0, B 0 (facoltativo) c n c n-1 c n-2 c 1 a n-1 a n-2 a 1 a 0 + b n-1 b n-2 b 1 b 0 = A= a n-1 a n-2 a 0, B= b n-1 b n-2 b 0 a n-1 = b n-1 = 0 s n-2 s 0 2 n-1 1 s n-1 s n-2 s 1 s 0 Se c è overflow allora A+B 2 n-1 quindi c n-1 = 1, s n-1 = 1, c n = 0 Se non c è overflow allora A+B 2 n-1 1 quindi c n-1 = 0, s n-1 = 0, c n = 0

Caso 1: A 0, B 0, esempi Somma di positivi è negativa: traboccamento! Corretto!

Caso 2: A < 0, B < 0 (facoltativo) c n c n-1 c n-2 c 1 a n-1 a n-2 a 1 a 0 + b n-1 b n-2 b 1 b 0 = A= a n-1 a n-2 a 0, B= b n-1 b n-2 b 0 a n-1 = b n-1 = 1 0 s n-2 s 0 2 n-1 1 s n-1 s n-2 s 1 s 0 Se c è overflow allora A+B < 2 n-1 quindi c n-1 = 0, s n-1 = 0, c n = 1 Se non c è overflow allora A+B > 2 n-1 quindi c n-1 = 1, s n-1 = 1, c n = 1

Corretto: trascurando riporto! Caso 2: A < 0 B < 0 (es. 6.5 corretto) 1 0 0 0 1 1 1 1 0 0 1 1 1 0 1 0 0 1 0 1 1 1 0 0 Somma di negativi è positiva: traboccamento!

Casi 3 e 4: A 0, B<0, esempi 3 4 Corretto: trascurando riporto!

Regola alternativa per l overflow Dalle considerazioni fatte nei vari casi si ottiene un altra regola per determinare l overflow. Se c n-1 = c n il risultato è corretto. Si ha invece overflow ogni qual volta c n-1 c n

Sottrazione con la ALU Per eseguire A B, la ALU eseguirà A + ( B). A= a n-1 a n-2 a 1 a 0 e B= b n-1 b n-2 b 1 b 0 B= b n-1 b n-2 b 1 b 0 + 1 c n c n-1 a n-1 a n-2 a 1 a 0 + b n-1 b n-2 b 1 b 0 + 1 = s n-1 c n-2 s n-2 c 1 s 1 s 0 c n c n-1 a n-1 a n-2 a 1 a 0 + b n-1 b n-2 b 1 b 0 + s n-1 c n-2 s n-2 c 1 s 1 s 0 e poi controlla l overflow 1 c 0 =1

Esercizi da [PH]: 3.1 3.11 da [P]: 6.1 6.4

Esercizi Eseguire l operazione 5ED4 07A4 direttamente in esadecimale. Eseguire l operazione 5E24 07A4 direttamente in esadecimale. Eseguire l operazione 1011 0010 direttamente in binario. Eseguire l operazione 1100 1010 direttamente in binario. Eseguire l operazione 1100 1010 passando per la rappresentazione in complemento a due. Per ogni operazione è necessario giustificare le operazioni svolte e verificarne la correttezza esprimendo ogni numero in decimale.