Rappresentazione in complemento a 2: caratteristiche generali

Похожие документы
Rappresentazione di numeri relativi (interi con segno) Rappresentazione di numeri interi relativi (con N bit) Segno e Valore Assoluto

Rappresentazione dei Numeri

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

La codifica. dell informazione

Modulo e segno Complemento a 1 (CA1) Complemento a 2 (CA2)

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dei numeri relativi

Aritmetica dei Calcolatori

Codifica binaria. Rappresentazioni medianti basi diverse

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

Cap. 2 - Rappresentazione in base 2 dei numeri interi

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

Soluzioni Esercizi su rappresentazione binaria dell informazione

Lezione 3. I numeri relativi

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

Rappresentazione e Codifica dell Informazione

Codifica dei Numeri. Informatica ICA (LC) 12 Novembre 2015 Giacomo Boracchi

Calcolo numerico e programmazione Rappresentazione dei numeri

Appunti di informatica. Lezione 3 anno accademico Mario Verdicchio

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

1.2f: Operazioni Binarie

Rappresentazione dei numeri in un calcolatore

La codifica. dell informazione

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

Rappresentazione dell Informazione

Corso di Architettura degli Elaboratori

Esercitazione del 09/03/ Soluzioni

Rappresentazione di numeri interi

Sistemi di Numerazione Binaria

Rappresentazione dei Dati

Informatica Generale 1 - Esercitazioni Flowgraph, algebra di Boole e calcolo binario

La codifica digitale

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

Rappresentazioni numeriche

Esercitazione del 2/3/2010- Numeri binari e conversione

Rappresentazione dell informazione

Numeri reali. Notazione scientifica (decimale) Floating Point. Normalizzazione. Esempi. Aritmetica del calcolatore (virgola mobile)

Codifica. Rappresentazione di numeri in memoria

I.4 Rappresentazione dell informazione

Somma di numeri binari

modificato da andynaz Cambiamenti di base Tecniche Informatiche di Base

Informatica di Base - 6 c.f.u.

04 Aritmetica del calcolatore

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

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

Rappresentazione dei dati

RAPPRESENTAZIONE DELL INFORMAZIONE

Calcolo numerico e programmazione Rappresentazione dei numeri

Aritmetica dei Calcolatori Elettronici

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

Codifica e aritmetica binaria

12BHD - Informatica - soluzioni Appendice B del quaderno di testo - v. 1.05

Analogico vs. Digitale. LEZIONE II La codifica binaria. Analogico vs digitale. Analogico. Digitale

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

Somma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi

Codifica dell Informazione

Calcolatori: Sistemi di Numerazione

Addizionatori: metodo Carry-Lookahead. Costruzione di circuiti combinatori. Standard IEEE754

Rappresentazione di Numeri Reali. Rappresentazione in virgola fissa (fixed-point) Rappresentazione in virgola fissa (fixed-point)

Sistemi di numerazione

Decimale, binaria,esadecimale

Fondamenti di Informatica: Teoria

LA TRASMISSIONE DELLE INFORMAZIONI SECONDA PARTE 1

Rappresentazione dei dati in memoria

Laboratorio di Informatica

Транскрипт:

Rappresentazione in complemento a 2: caratteristiche generali La rappresentazione non è completamente posizionale, ma in parte sì. Guardando il bit più significativo (MSB) si capisce se il numero è positivo (o nullo) o negativo. Lo zero ha un unica rappresentazione (costituita da tutti bit nulli). Architettura degli elaboratori - 39 - Rappresentazione in complemento a 2 di un numero positivo dato Rappresentiamo su k bit il numero N: Se N 0 basta assegnare al MSB il valore 0 e codificare N sui rimanenti k-1 bit. NB: questo implica che sono rappresentabili i numeri fino a 2 k-1-1 Esempio su 8 bit (k=8): N= +96; Cp 2 (+96) = 01100000 Prova: 01100000 2 = (64+32) 10 = 96 10 0 1 1 0 0 0 1 1 base 2 naturale 128 64 32 16 8 4 2 1 complemento a 2-128 64 32 16 8 4 2 1 Architettura degli elaboratori - 40 - Architettura degli elaboratori - Rappresentazione dei numeri e aritmetica binaria 1

Rappresentazione in complemento a 2 di un numero negativo dato Un numero negativo rappresentato in complemento a due comincia sempre per 1 Di posizione con valore negativo ce n è una sola: se in corrispondenza c è uno zero, il numero non può essere negativo. X 1 1 1 0 0 0 1 1 naturale compl. a 2 128 64 32 16 8 4 2 1-128 64 32 16 8 4 2 1 N=128+X N=-128+X Architettura degli elaboratori - 41 - Rappresentazione in complemento a 2 di un numero negativo dato Dato N 0, vogliamo rappresentare N in complemento a 2 mediante una stringa S di 8 bit. La stringa S interpretata come numero in compl. a 2 vale -128+X = -N Quindi, X=128-N La stringa S interpretata come numero naturale vale 128+X, cioè 128+128-N = 256-N In conclusione, la stringa S che denota N in complemento a 2 è la stessa che denota 256-N in binario. Esempio: -N= -56 256 56 = 200 = 128+64+8 11001000 Cp 2 (-56) = 11001000 Prova: l interpretazione in compl. a 2 di 11001000 è -128+64+8 = -56 Architettura degli elaboratori - 42 - Architettura degli elaboratori - Rappresentazione dei numeri e aritmetica binaria 2

Rappresentazione in complemento a 2 di un numero negativo dato -N = -74-128+X = -74 X = 128-74 = 54 = 0110110 256-74 =182 X 1 0 1 1 0 1 1 0 naturale compl. a 2 128 64 32 16 8 4 2 1-128 64 32 16 8 4 2 1 N=128+54 =182 N=-128+54 = -74 Architettura degli elaboratori - 43 - Notazione in complemento a 2 caratteristiche ed esempi MSB = 0 numero positivo stesso valore che si avrebbe in binario puro: il diverso peso del MSB non ha influenza MSB = 1 numero negativo il valore si ottiene sommando il contributo negativo del MSB con i contributi positivi degli altri bit Esempi 11010111-128 + 64 + 16 + 4 + 2 + 1 = -41 00110011 32 + 16 + 2 + 1 = 51 10000000-128 + 0-128 11111111-128+64+32+16+8+4+2+1 = -1 00000000 denota il valore 0, cioè 0 01111111 64+32+16+8+4+2+1 = 127. Architettura degli elaboratori - 44 - Architettura degli elaboratori - Rappresentazione dei numeri e aritmetica binaria 3

Notazione in complemento a 2: proprietà Il massimo intero positivo rappresentabile è di uno inferiore al minimo negativo rappresentabile perché lo 0 viene considerato parte dei positivi. Lo zero ha ora un unica rappresentazione efficienza, semplicità Architettura degli elaboratori - 45 - Complemento a 2: altri esempi Con k = 8 la rappresentazione in complemento a 2 di -1 si ottiene rappresentando in binario su 8 bit il valore 255, infatti: Cp 2 (-1) = 2 8-1 = 256-1= 255 11111111 In generale il valore -1 si rappresenta sempre con tutti i bit uguali a uno, indipendentemente da k. Architettura degli elaboratori - 46 - Architettura degli elaboratori - Rappresentazione dei numeri e aritmetica binaria 4

Notazione in complemento a 2 caratteristiche ed esempi Valori opposti, come 17 e -17, hanno rappresentazioni diverse 17 00010001-17 11101111 Rappresentazioni identiche a meno del MSB denotano valori interi completamente diversi 01010101 85 11010101-128+85 = -43 Architettura degli elaboratori - 47 - Notazione in complemento a 2: intervallo di valori rappresentabili MSB=0 k-1 bit usabili come in binario puro intervallo da 0 a 2 k-1-1 MSB=1 stesso intervallo traslato di -2 k-1 intervallo da -2 k-1 a -1 Complessivamente è rappresentabile l intervallo da -2 k-1 a 2 k-1-1 Esempio: k=8 bit 2 8 = 256 combinazioni intervallo da -2 7 a 2 7-1 cioè -128..127 anziché, come in binario puro, 0..255 256 combinazioni allocate metà ai positivi e metà ai negativi, anziché tutte ai positivi Architettura degli elaboratori - 48 - Architettura degli elaboratori - Rappresentazione dei numeri e aritmetica binaria 5

Notazione in complemento a 2: proprietà Le somme algebriche si possono eseguire con le stesse regole dell aritmetica binaria La sottrazione si può eseguire banalmente complementando e sommando: a-b = a+(-b) È verificata la proprietà X + (-X) = 0 (trascurando il riporto) Non è necessario alcun circuito particolare per trattare i negativi semplicità e basso costo. Architettura degli elaboratori - 49 - Rappresentazione in complemento a 2: facilità d uso Il problema principale della rappresentazione in modulo e segno è dato dalla non applicabilità degli algoritmi che funzionano per i numeri interi positivi. La rappresentazione in complemento a 2 permette di utilizzare direttamente gli algoritmi dei numeri naturali per eseguire le operazioni. In particolare è verificata la proprietà X + (-X) = 0 (usando le regole dell'aritmetica binaria senza segno). X + (-X) = X + (2 k X) = 2 k Ma 2 k non è rappresentabile con k bit: grazie all overflow si ottenono k zeri. Per questo motivo la rappresentazione in complemento a 2 è molto diffusa. Architettura degli elaboratori - 50 - Architettura degli elaboratori - Rappresentazione dei numeri e aritmetica binaria 6

Rappresentazione in complemento a 2 di un numero negativo dato Generalizzando alla rappresentazione su k bit: per i negativi: Cp 2 ( N) = binario( 2 k N ) per i positivi: Cp 2 (+N) = binario( N ) (con N>0 ) Es, con k = 8 bits: Cp 2 ( 39) = binario(256 39 ) = binario(217) 11011001 Metodo alternativo: sottrarre da 0. -39 = 0 - (+39) -1-1 -1-1 -1-1 -1-1 0 0 0 0 0 0 0 0-0 0 1 0 0 1 1 1 = --------------------------- 1 1 0 1 1 0 0 1 Architettura degli elaboratori - 51 - Rappresentazione in complemento a 2 di un numero negativo dato Altro esempio (8 bit) Cp2(-47) = 256-47 = 209 = 11010001 47 + 00101111 + (-47) = 11010001 = 0 (1)00000000 = 0 Architettura degli elaboratori - 52 - Architettura degli elaboratori - Rappresentazione dei numeri e aritmetica binaria 7

Rappresentazione in complemento a 2: operazione cambio di segno Dato un numero X (pos o neg) in Cp2, come posso cambiare di segno? cioè: dato Cp2( X ), voglio trovare Cp2( -X ) Se X è positivo: Per definizione Cp2 (-X) = binario( 2 n -X ) = binario( (2 n -1) (X-1) ) ma (2 n -1) è una sequenza di n bit : 11111. e la differenza tra n uni e un numero binario (X-1) più piccolo (rappresentato con n bit) equivale a invertire tutti i bit della rappresentazione di (X-1) -- (provare) Dopo di che basta aggiungere 1 per ottenere 2 n -X = Cp2( -X ) Quindi: algoritmo: (1) inverto tutti i bit (2) faccio +1 funziona anche se X è negativo! (provare) Architettura degli elaboratori - 53 - Rappresentazione in complemento a 2: operazione cambio di segno Il procedimento funziona anche al contrario, cioè se si applica ad un numero negativo (-X) invertendo i bit e sommando 1 si ottiene la rappresentazione del numero positivo (+X). Il procedimento funziona anche per lo zero: sommando uno a una parola di tutti uni si ottiene 0 (trascurando il riporto). Architettura degli elaboratori - 54 - Architettura degli elaboratori - Rappresentazione dei numeri e aritmetica binaria 8

Rappresentazione in complemento a 2: operazione cambio di segno Esempio (con 8 bits) rappresentazione in cp2 di +92 0 1 0 1 1 1 0 0 1 0 1 0 0 0 1 1 (flip di tutti i bit) 1 0 1 0 1 1 0 0 (somma di +1) E ritorno, con lo stesso algoritmo: 1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1 (flip di tutti i bit) 0 1 0 1 1 1 0 0 (aggunta di +1) rappresentazione in cp2 di -92 Architettura degli elaboratori - 55 - Rappresentazione in complemento a 2 di un numero negativo dato Il metodo piú semplice per trovare la cp(-x) di un numero negativo -X (X positivo): 1. Trovare cp( X ), cioè binario( X ) e invertirne il segno, cioè: 2. Invertire tutti i bit di tale rappresentazione, ( «farne il complemento a 2», è questo che dà il nome alla notazione!) 3. Aggiungere 1 al risultato così ottenuto. Esempio: determinazione della rappresentazione di -25 (su k=8 bit) 1) 25 00011001 2) flip di segno 11100110 3) incremento di 1 11100111 Verifica: -128 + 64 + 32 + 4 + 2 + 1 = -128 + 103 = -25 Architettura degli elaboratori - 56 - Architettura degli elaboratori - Rappresentazione dei numeri e aritmetica binaria 9

Notazione in complemento a 2 Overflow Consideriamo i casi seguenti: -73 10110111 +73 01001001-73 10110111 +73 01001001 ------ ----------------- ------ --------------- -146 (1)01101110 +146 10010010 Il risultato è sbagliato: la prima stringa denota +110, la seconda 110. Il motivo è che 146 e +146 sono fuori dall intervallo rappresentabile con 8 bit (-128... 127). L overflow si riconosce dal fatto che sommando due numeri positivi otteniamo un negativo e viceversa. Architettura degli elaboratori - 57 - Overflow Sommando due valori che danno come risultato un valore esterno all intervallo rappresentabile [-2 n-1... 2 n-1-1] si provoca l invasione del bit di segno da parte del risultato In questo caso si ha overflow: il numero di bit non è sufficiente per la rappresentazione del numero. Una regola pratica per vedere se si ha overflow: operazioni tra numeri di segno diverso sono sempre corrette in quanto non si può uscire dal range operazioni tra numeri dello stesso segno sono corrette se il risultato mantiene il segno degli addendi. Architettura degli elaboratori - 58 - Architettura degli elaboratori - Rappresentazione dei numeri e aritmetica binaria 10

https://xkcd.com/571/ Architettura degli elaboratori - 59 - Architettura degli elaboratori - Rappresentazione dei numeri e aritmetica binaria 11