Cap. 2 - Rappresentazione in base 2 dei numeri interi

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

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

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

Codifica binaria. Rappresentazioni medianti basi diverse

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

Rappresentazione e Codifica dell Informazione

Rappresentazione dei Numeri

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

Rappresentazione dei numeri interi in un calcolatore

Rappresentazione dei numeri interi in un calcolatore. Rappresentazione dei numeri

1.2f: Operazioni Binarie

La codifica digitale

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

Lezione 3. I numeri relativi

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

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

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

ARITMETICA BINARIA. La somma viene eseguita secondo le regole per la somma di due bit, di seguito riportate:

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

La codifica delle informazioni numeriche ed alfanumeriche.

Rappresentazione dei numeri

Rappresentazioni numeriche

Rappresentazione dei numeri interi in un calcolatore

Interi positivi e negativi

Rappresentazione binaria

04 Aritmetica del calcolatore

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

La codifica. dell informazione

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

Calcolo numerico e programmazione Rappresentazione dei numeri

Aritmetica in complemento a due. 29 settembre 2017

INFORMATICA DI BASE I FONDAMENTI

I.4 Rappresentazione dell informazione

Rappresentazione binaria

Rappresentazione in complemento a 2: caratteristiche generali

Unità aritmetica e logica

Corso di Informatica

Corso di Architettura degli Elaboratori

Sistemi di numerazione

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

1-Rappresentazione dell informazione

Rappresentazione dell Informazione

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

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

SISTEMI DI NUMERAZIONE POSIZIONALI

Modulo: Informatica 13/12/2010 SISTEMI INFORMATICI SISTEMI INFORMATICI SISTEMI INFORMATICI

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

Informatica e Bioinformatica: Rappresentazione dell Informazione

La "macchina" da calcolo

Somma di numeri binari

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

Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri Roberto Navigli

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

La codifica. dell informazione

LA TRASMISSIONE DELLE INFORMAZIONI SECONDA PARTE 1

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

Un ripasso di aritmetica: Rappresentazione decimale - limitazioni

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

1.2 Concetti base dell Informatica: Informazione

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

NUMERI NATURALI: INTERVALLO DI VALORI RAPPRESENTABILI INFORMAZIONI NUMERICHE

Sistemi di Numerazione

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

Rappresentazione della informazione

Arithmetic and Logic Unit e moltiplicatore

Rappresentazione numeri reali

TECNOLOGIA DIGITALE. CPU, memoria centrale e dispositivi sono realizzati con tecnologia elettronica digitale

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

La codifica dei numeri

Rappresentazione dei numeri in un calcolatore

Sistemi di numerazione

Codifica di informazioni numeriche

Rappresentazione dell Informazione

Modulo: Elementi di Informatica

Informazione binaria: - codici binari, notazione binaria/ottale/esadecimale -

Aritmetica binaria e circuiti aritmetici

Rapida Nota sulla Rappresentazione dei Caratteri

Rappresentazione dell informazione

Fondamenti di Programmazione. Sistemi di rappresentazione

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

Informatica Generale 02 - Rappresentazione numeri razionali

Rappresentazione dell informazione

I.4 Rappresentazione dell informazione - Numeri con segno

TECNOLOGIA DIGITALE. TECNOLOGIA DIGITALE (segue)

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

Rappresentazione delle frazioni proprie Aritmetica in binario Barbara Masucci

Calcolatori Elettronici Parte III: Sistemi di Numerazione Binaria

Codifica dell informazione numerica

Sistemi di Numerazione Binaria

Esercitazione 1 del 07/10/2011

Operazioni artimetiche

Codifica dell informazione

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

Transcript:

Cap. 2 - Rappresentazione in base 2 dei numeri interi 2.1 I NUMERI INTERI RELATIVI I numeri relativi sono numeri con il segno: essi possono essere quindi positivi e negativi. Si dividono in due categorie: numeri con la virgola e numeri interi. Noi ci occuperemo unicamente di questi ultimi. I numeri naturali che abbiamo visto nel capitolo precedente possono essere considerati come il valore assoluto di un numero intero. La rappresentazione dei numeri interi in base 2 è concettualmente diversa dalla rappresentazione analoga in base 10. Abbiamo visto nel primo capitolo la rappresentazione in base 2 dei numeri naturali e, a parte il diverso simbolismo delle cifre, tale rappresentazione era concettualmente analoga a quella in base 10 (vedi la definizione della notazione di posizione). Per rappresentare invece un numero relativo in base 2 è necessario introdurre prima il concetto di parola. Solo in seguito si possono definire le diverse rappresentazioni dei numeri interi, che trovano la loro ragione di essere nella maggiore semplicità dei relativi circuiti logici elettronici preposti a eseguire le diverse operazioni aritmetiche. 2.2 IL CONCETTO DI PAROLA Una prima caratteristica dei circuiti digitali è quella di avere solo due livelli di tensione per rappresentare in un opportuno codice una cifra. Ecco perché essi utilizzano il sistema binario. Una seconda caratteristica è quella relativa al numero di cifre a disposizione per rappresentare i valori numerici e più in generale l'informazione. Questo numero di cifre è fisso, in prima approssimazione; quindi anche nel caso in cui è possibile rappresentare il valore numerico con un numero di cifre inferiori vengono aggiunti degli 0 a sinistra della ultima cifra significativa (che nel sistema binario è un 1) fino a raggiungere il numero di cifre voluto. Viene chiamata parola del calcolatore la stringa di 1 e 0 che rappresenta il valore numerico o più in generale l'informazione. Nella rappresentazione decimale abbiamo i segni + e - e dieci simboli diversi per le dieci cifre, nel sistema binario abbiamo due soli simboli, 0 e 1, che vengono utilizzati sia per le cifre che per il segno. Una parola di otto cifre binarie viene chiamata byte e con otto cifre binarie noi possiamo contare da 0 a 256. Se invece dobbiamo rappresentare un numero intero abbiamo solo sette cifre a disposizione per il suo valore assoluto. Quindi con un byte possiamo rappresentare tutti gli interi compresi fra + 127 e - 127 (vedremo che non è così esattamente). In generale la lunghezza di parola di un microprocessore consiste di 1, 2 e 4 byte a secondo della sua potenza. Una regola generale per rappresentare i numeri con segno è la seguente: - i numeri positivi iniziano con 0 - i numeri negativi iniziano con 1. 1

Questa regola permette di individuare in maniera univoca la rappresentazione dei numeri positivi che inizia con 0 seguita dal valore assoluto del numero. La rappresentazione dei numeri negativi invece inizia con 1 ma vi sono tre metodi diversi per la rappresentazione 2.2 RAPPRESENTAZIONE IN VALORE ASSOLUTO E SEGNO (SIGNED MAGNITUDE) In questa rappresentazione la cifra più significativa rappresenta il segno mentre le altre cifre rappresentano il suo valore assoluto o numero intero senza segno. Questa rappresentazione è analoga a quella usuale dei numeri decimali. Chiariamo il concetto con un esempio: Se vogliamo rappresentare i due numeri + 15 e - 15 con otto cifre dobbiamo aggiungere degli 0 a sinistra del suo valore assoluto, abbiamo cioè: il valore assoluto di 15 è: 1111 + 15 in valore e segno, (8 cifre): 00001111-15 in valore e segno, (8 cifre): 10001111 Utilizzando questa rappresentazione quando dobbiamo fare la differenza di due numeri abbiamo i seguenti gradini decisionali: 1. determinare quale dei due numeri è maggiore in valore assoluto 2. fare la differenza fra i due valori assoluti 3. assegnare al risultato il segno del numero maggiore in valore assoluto. 2.3 RAPPRESENTAZIONE COMPLEMENTO A 1 (1' COMPLEMENT) Prima di parlare della rappresentazione in complemento a 1 definiamo l'operazione di complemento a 1 di un numero binario o comunque di una stringa di 1 e 0. Si definisce complemento a 1 di una stringa di 1 e 0 la stringa che si ottiene cambiando gli 1 in 0 e viceversa. Per esempio dati i due numeri binari: 00101 il suo complemento a 1 è 11010 11010 il suo complemento a 1 è 00101. Ripetendo due volte l'operazione di complemento a 1 si riottiene il numero di partenza e se sommiamo un numero al suo complemento a 1 otteniamo un numero con tutti 1. La rappresentazione in complemento a 1 dei numeri interi positivi si ottiene, come già detto, mettendo uno 0 come cifra più significativa seguita dal valore assoluto del numero. La 2

rappresentazione in complemento a 1 dei numeri negativi si ottiene complementando a 1 il valore assoluto e mettendo un 1 come cifra più significativa. Naturalmente in ambedue i casi si deve tenere conto del numero di cifre della parola, in particolare il numero di cifre a disposizione per il valore assoluto (lunghezza della parola meno 1) deve essere sufficente a rappresentare il valore numerico voluto. Chiariamo la definizione con un esempio: supponiamo di avere a disposizione otto cifre binarie per la rappresentazione del numero in complemento a 1 e vogliamo determinare la rappresentazione in complemento a 1 dei due numeri + 123 e - 123. Con otto cifre binarie possiamo rappresentare i due numeri: il valore assoluto di 123 è: 1111011 (numero naturale) +123 in complemento a 1 con 8 cifre: 01111011 (numero intero positivo) - 123 in complemento a 1 con 8 cifre: 10000100 (numero intero negativo). Mentre se dobbiamo rappresentare i due numeri + 15 e - 15 dobbiamo aggiungere degli 0 a sinistra del suo valore assoluto, abbiamo cioè: il valore assoluto di 15 è: 1111 + 15 in complemento a 1, (8 cifre): 00001111-15 in complemento a 1, (8 cifre): 11110000. 2.4 RAPPRESENTAZIONE IN COMPLEMENTO A 2 (2' COMPLEMENT) La rappresentazione in complemento a 2 con n cifre del numero negativo N è data per definizione da: N = 2 n - N (2.1) Naturalmente deve essere N < 2 n. In maniera analoga a prima definiamo l'operazione di complemento a 2 di un numero o comunque una stringa di 1 e 0. Essa è ottenuta sommando 1 al complemento a 1 di questo numero. La rappresentazione in complemento a 2 di un numero negativo si ottiene facendo il complemento a 1 del suo valore assoluto e mettendo un 1 come cifra più significativa. Naturalmente, come nel caso precedente, si deve tenere conto del numero di cifre della parola. Verifichiamo quanto detto con un esempio. Per la rappresentazione del numero decimale - 123, abbiamo: il valore assoluto di 123 in binario è: 1111011-123 rappresentato in complemento a 1 (8 cifre) : 10000100 3

gli sommiamo ora 1 e otteniamo: 10000101 che è la rappresentazione in complemento a 2 di - 123. Se applichiamo ora la formula 2.1 abbiamo: 1 0 0 0 0 0 0 0 0-0 1 1 1 1 0 1 1 ------------------- 1 0 0 0 0 1 0 1 resta così verificato quanto detto. Risulta ora utile riportare il conteggio dei numeri relativi nelle tre diverse rappresentazioni viste supponendo di avere, per semplicità, una parola di tre cifre binarie. Il risultato è riportato in figura 2.1. Decimale Valore e segno Compl. a 1 Compl. a 2 +3 011 011 011 +2 010 010 010 +1 001 001 001 +0 000 000 000-0 100 111 000-1 101 110 111-2 110 101 110-3 111 100 101-4 - - 100 Figura 2.1 Tabella di conteggio nelle tre rappresentazioni 4

Osserviamo la rappresentazione dei numeri - 0 e - 4: la rappresentazione di - 0 (indicato in grassetto nella tabella) è diversa nei tre casi mentre la rappresentazione di - 4 è possibile solo in complemento a 2. Somma di udue numeri in complemento a 2 Supponiamo per semplicità di avere numeri con quattro cifre binarie e che la operazione di somma non dia luogo a un risultato non rappresentabile con quattro cifre, ossia non dia luogo a ciò che viene chiamato overflow. Vediamo di chiarire il concetto di overflow: sappiamo dalla tabella precedente che con quattro cifre binarie nella rappresentazione in complemento a 2 possiamo rappresentare tutti i numeri relativi compresi fra + 7 e - 8, mentre i numeri superiori a + 7 e inferiori a - 7 (-8 in complemento a 2) non sono rappresentabili con sole quattro cifre binarie. Prendiamo ad esempio la somma di + 4 e + 5, che dà luogo a + 9, e la somma dei due numeri negativi - 5-5, che dà luogo a - 10, in ambedue i casi abbiamo un risultato che non possiamo rappresentare in complemento a 2 con sole quattro cifre binarie: sono necessarie più cifre. La rappresentazione dei numeri relativi in complemento a 2 presenta i due seguenti vantaggi quando deve essere eseguita la somma di due numeri: 1. tutte le cifre del numero, compreso il segno vengono elaborate con lo stesso algoritmo, 2. la somma di numeri positivi e negativi viene eseguita pure con lo stesso algoritmo. Ci limiteremo a verificare questa asserzione e osserviamo che questa proprietà semplifica notevolmente la progettazione dei circuiti elettronici preposti alla somma dei numeri relativi in quanto non è necessario controllare il segno dei numeri prima di fare la loro somma, come pure non è necessario separare la cifra del segno da quelle del numero. Supponiamo di dovere fare le seguenti operazioni: - somma di due numeri positivi: 4 + 0100 + 3 0011 ----- ------ 7 0111 - somma di un numero negativo con uno positivo: - 4 + 1100 + 5

3 0011 ---- ------ -1 1111 - somma di due numeri negativi: - 4 + 1100 + - 3 1101 ---- ------ -7 1001 con riporto di 1 il risultato è giusto anche se siamo in presenza di un riporto che viene ignorato in quanto non è relativo ad overflow. - somma di due numeri negativi il cui risultato non è rappresentabile con quattro cifre: - 4 + 1100 + - 7 1001 ---- ------ - 11 0101 con riporto di 1 il risultato binario è chiaramente errato: infatti è uguale a + 5. La ragione dell'errore risiede nel fatto che siamo in presenza di overflow: il risultato giusto è uguale a - 11 che non è rappresentabile in complemento a 2 con quattro cifre binarie. Vi sono dei semplici algoritmi che permettono di controllare se il riporto è relativo a condizione di overflow o meno: in questo caso particolare di overflow esso è rilevato dal fatto che la somma di due numeri negativi ha dato luogo a un numero positivo, altro caso analogo è quello relativo alla somma di due numeri positivi che dà luogo a un risultato negativo. Sottrazione di due numeri in complemento a 2 Se vogliamo fare la sottrazione di due numeri rappresentati con il complemento a 2 la regola da seguire è la seguente: 6

- si complementa a 2 il numero da sottrarre - si sommano ora i due numeri il risultato così ottenuto è in complemento 2. Verifichiamo quanto detto nei seguenti esempi, supponendo per semplicità di avere due numeri di quattro cifre e che il risultato sia ancora rappresentabile con un numero di quattro cifre. Primo esempio: In decimale 7 3 = 7 + ( 3) = 4 In binario 0111 0011 = 0111 + 1101 = 0100 con riporto di 1 che non interessa Il risultato è giusto e il riporto si può trascurare in quanto non vi è overflow. Secondo esempio: In decimale 4 7 = 4 + ( 7) = 3 In binario 0100 0111 = 0100 + 1001 = 1101 Anche questo risultato è giusto e resta così verificato quanto detto all'inizio del paragrafo. E' immediato verificare anche il caso in cui il sottraendo sia negativo e quindi in sostanza si fa una somma. In conclusione la rappresentazione in complemento a 2 permette di utilizzare nei sistemi digitali lo stesso circuito per la somma e la sottrazione, indipendentemente dal fatto che il numero sia positivo o negativo. Vi sarà poi un circuito che fa il complemento a 2 di un numero nel caso in cui si voglia fare la differenza. Il semplice esempio precedente della somma di due numeri relativi illustra la metodologia che viene seguita nella progettazione dei sistemi digitali: prima di passare alla progettazione circuitale vengono sviluppati quegli algoritmi algebrici che permettono una più semplice soluzione. Non vengono descritti gli algoritmi utilizzati nei circuiti digitali per l'operazione di moltiplicazione e divisione per cui si rimanda ai testi specializzati. In questi due casi conviene la rappresentazione in valore e segno separando la cifra del segno da quella del numero durante la elaborazione: infatti in questo caso devono essere seguiti algoritmi diversi per il bit del segno e per quelli del numero. Inoltre i sistemi digitali hanno la possibilità di rappresentare e elaborare i numeri con virgola, ma anche per questo problema si rimanda ai testi specializzati. 7

2.7 ESERCIZI Dati i due numeri decimali 83 e 44 eseguire le operazioni aritmetiche indicate qui sotto a sinistra utilizzando la loro rappresentazione in complemento a 2 con otto cifre e verificare alla fine i risultati ottenuti in binario. Risoluzione: Riportiamo a sinistra i numero in decimale mentre a destra viene riportata la corrispondente rappresentazione in complemento a 2 con la relativa operazione aritmetica: nella sottrazione viene sommato il complemento a 2 del minuendo. a) Somma di due numeri positivi: 83 + 01010011 + 44 00101100 ---- ------------ 127 01111111 è immediato verificare che il risultato è giusto: infatti sette 1 in binario equivalgono a 127 in decimale. b) Sottrazione di due numeri 83-01010011 + 44 11010100 ---- ----------- 39 00100111 N.B. Abbiamo un riporto che trascuriamo perché non relativo ad overflow. c) Sottrazione di due numeri 8

44-00101100 + 83 10101101 ---- ------------ - 39 11011001. d) Somma di due numeri negativi: - 83 + 10101101 + - 44 11010100 ------ ------------- - 127 10000001 N.B. Abbiamo un riporto che trascuriamo perché non relativo ad overflow (somma di due numeri negativi con risultato negativo, in caso di overflow il risultato sarebbe stato positivo). In questo caso poi è immediato verificare che il numero binario in complemento a 2 10000001 è uguale in decimale a 127. 9