Rappresentazione dell’Informazione

Slides:



Advertisements
Presentazioni simili
Dall’informazione al linguaggio macchina
Advertisements

Rappresentazioni numeriche
Informatica Generale Susanna Pelagatti
Fondamenti di Informatica
Sistemi di numerazione
Rappresentazione di Numeri Reali
Rappresentazioni numeriche
Sistemi di numerazione
Trasmissione delle informazioni
Codifica dei Dati Idea: vogliamo rappresentare dati eterogenei utilizzando un linguaggio che l’elaboratore puo’ facilmente manipolare Essenzialmente vogliamo.
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
Sistemi di numerazione e codici
Fondamenti di Informatica I Facoltà di Ingegneria Informatica Esercitazione.
Esercitazioni su rappresentazione dei numeri e aritmetica
Circuiti di memorizzazione elementari: i Flip Flop
Rappresentazione dei numeri razionali
27+ 12= Risultato troppo grande = = 39 = -25 errore di overflow in binario =
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
Informatica 3 Codifica binaria.
A.S.E.13.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 13 Somma e differenza di due numeri in C2Somma e differenza di due numeri in C2 Half AdderHalf.
A.S.E.6.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 6 Complemento a MComplemento a M Rappresentazione di numeri con segnoRappresentazione di numeri.
A.S.E.5.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 5 Rappresentazione di numeri con segnoRappresentazione di numeri con segno –Modulo e segno (MS)
Sistemi di Numerazione
Corso di Informatica (Programmazione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Rappresentazione dellinformazione su calcolatore Anno Accademico 2009/2010.
Corso di Informatica (Programmazione)
Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)
Confronto di due signed (in compl. a 2) Caso 1: numeri dello stesso segno Non ci può essere overflow (sottraendo, viene fuori un numero più piccolo in.
Corso di Informatica per Giurisprudenza
Rappresentazione dei dati
Esistono 10 tipi di persone al mondo: Quelli che conoscono il codice binario & Quelli che non lo conoscono.
I CODICI.
Rappresentazioni numeriche
Rappresentazione binaria dei numeri interi senza segno.
Codici binari decimali
1 Sistemi Digitali. 2 Definizione Analog Waveform Time Voltage (V) 0 5 Digital Waveform Time Voltage (V)
Rappresentazioni numeriche. Introduzione Un calcolatore elettronico dispone di uno spazio finito per memorizzare le cifre che esprimono un valore numerico.
4) Rappresentazione dei dati in memoria
Cos’è un problema?.
Il sistema binario.
Codifica binaria Rappresentazione di numeri
Rappresentazione di numeri relativi (interi con segno)
Usare rappresentazioni di lunghezza fissa porta ad avere valori non rappresentabili: Overflow indica un errore nella rappresentazione del risultato in.
Conversione binario - ottale/esadecimale
Conversione binario - ottale/esadecimale
Rappresentazione di Numeri Reali
Rappresentazione dell’informazione
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
ARITMETICA BINARIA.
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori (Reti Locali, Internet)
RAPPRESENTAZIONE DELL'INFORMAZIONE
Operazioni con Numeri Naturali e Numeri Decimali
Dalle potenze ai numeri binari
Linguaggi e Programmazione per l’Informatica Musicale
Process synchronization
Rappresentazione dell’informazione nel calcolatore.
Rappresentazione della Informazione
Rappresentazioni a lunghezza fissa: problemi
Rappresentazione in virgola mobile (floating-point) Permette di rappresentare numeri con ordini di grandezza molto differenti utilizzando per la rappresentazione.
Rappresentazione dell'informazione
Rappresentazione dell'informazione 1 Se ho una rappresentazione in virgola fissa (es. su segno e 8 cifre con 3 cifre alla destra della virgola) rappresento.
La codifica dei numeri.
Conversione binario-ottale/esadecimale
Rappresentazione degli interi
Rappresentazione dei numeri
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri in virgola Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
I sistemi di numerazione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri con segno ed in virgola Marco D. Santambrogio – Ver. aggiornata al 20 Marzo.
La numerazione ottale. Il sistema di numerazione ottale ha ampio utilizzo in informatica E’ un sistema di numerazione posizionale La base è 8 Il sistema.
Transcript della presentazione:

Rappresentazione dell’Informazione

Rappresentazione delle informazioni in codice binario Caratteri Naturali e Reali positivi Interi Razionali

Rappresentazione del testo Una stringa di bit per ogni simbolo (caratteri maiuscoli, caratteri minuscoli, cifre, ...) ANSI (American National Standards Institute) ha adottato il codice ASCII (American Standard Code for Information Interchange): 7 bit per ogni simbolo + 0 come bit piu’ significativo =un byte

Rappresentare numeri Il codice ASCII e’ inefficiente: per rappresentare numeri con n cifre servono n byte Meglio usare metodi che sfruttano la notazione binaria (base 2) Base 2: solo le cifre 0 e 1 invece che 0, 1, ..., 9 (base 10)

Base 10 e base 2

Rappresentazione decimale Base 10  cifre da 0 a 9 Sequenza di cifre decimali d k-1 … d1 d0  numero intero ∑j=0…k-1 dj 10j dk-1 x 10 k-1 + … d1 x 10 + d0 Esempio: 102 in base 10 è 1x100 + 0x10 + 2x1

Rappresentazione binaria Base 2  cifre 0 e 1 Sequenza di cifre binarie d k-1 … d1 d0  numero intero (stesso procedimento ma su base 2) ∑j=0…k-1 dj 2j Esempio: 01011012 = 1·25 + 1·23 + 1·22 + 1·20 = 32 + 8 + 4 + 1 = 4510

Rappresentazione binaria Valore minimo di una sequenza di n cifre binarie: 000 … 0 (n volte) = 010 Valore massimo: 1111…111 (n volte) = 2n-1 + 2 n-2 + … + 22 + 21 + 20 = 2n –1 Esempio con n=3: 111 = 22 + 2 + 1 = 7 = 23 -1 Da 0 a 8: 0, 1, 10, 11, 100, 101, 110, 111, 1000

Una proprietà dei numeri binari 1001001= 73 100100 = 36 = 73/2 e questo è il resto Eliminare il bit più a destra corrisponde a dividere per 2 il valore, ed il bit eliminato è il resto

Trasformazione di un numero in base 10 a numero binario 125 in binario è 1111101 125 125/2=62 resto 1 62/2=31 resto 0 31/2=15 resto 1 15/2=7 resto 1 7/2=3 resto 1 3/2=1 resto 1 1/2=0 resto 1 rappresenta 62 rappresenta 31 Etc.

Esercizio 1 Scrivere la rappresentazione binaria dei numeri decimali: 30 36 15

Esercizio 2 Scrivere la rappresentazione decimale dei numeri binari: 1000 1010 01011 10111

Correzione degli esercizi Scrivere la rappresentazione binaria dei numeri decimali: 30  11110 36  100100 15  1111

Correzione degli esercizi Scrivere la rappresentazione decimale dei numeri binari: 1000  8 1010  10 01011  11 10111  23

Somma binaria

Somma binaria 0111002 + 1001112 = ----------- 10000112 Colonna per colonna, da destra a sinistra Riporto se la somma su una colonna supera la base Tre cifre binarie (prima riga, seconda riga, riporto), somma =1 se una o tre sono 1, riporto = 1 se almeno due sono 1 Riporto: 1 1 1 1 0 0 0111002 + 1001112 = ----------- 10000112 28+39=67

Si vuole quindi costruire un circuito per sommare due numeri binari 1 11 riporti 1010011 + 1100011 = ---------- 10110110 Si vuole quindi costruire un circuito per sommare due numeri binari

Iniziamo con un circuito che faccia la somma su una colonna 10000110 riporti 1010011 + 1100011 = ---------- 10110110 Iniziamo con un circuito che faccia la somma su una colonna Abbiamo tre cifre binarie X, Y, R in input mentre in output vogliamo ottenere la somma S ed il riporto R'

Tabella di verità X Y R S R' 1

Supponiamo di avere i circuiti che calcolano somma e riporto X SOMMA S Y R X RIPORTO R' Y R

Possiamo allora combinare i circuiti SOMMA e RIPORTO per ottenere il seguente circuito 1-ADD X Y R RIPORTO R'

Il circuito RIPORTO puo` essere realizzato nel seguente modo X R' Y R Basta infatti verificare la corrispondente tabella di verita’

Il circuito SOMMA naturalmente puo' pure essere realizzato (vedi dispensa). A questo punto componendo K circuiti 1-ADD e` possibile realizzare un circuito K-ADD che somma due numeri binari di K cifre. Vediamo l'esempio della somma di due numeri binari di 4 cifre.

Somma di numeri di 4 bit risultato riporto finale inutile Y3 Y2 Y1 Y0 X3 X2 X1 X0 riporto finale inutile 0 riporto iniziale R3 R2 R1 R0 1-add 1-add 1-add 1-add S3 S2 S1 S0 risultato

Esempio 0 1 1 0 0 1 1 1 1 1 1-add 1-add 1-add 1-add 0111 + 0110 = ------ 1101 1 1 0 1

Attenzione Per esempio: Si e` trascurato il problema del cosiddetto overflow, cioe’ il risultato e’ troppo grande per essere contenuto nei bit disponibili. Per esempio: 0111 + 1110 = ------ 10101

Esercizi 11011+ 1100 --------- 11111+ 1 ---------

Correzioni 1 11111 11011+ 1100 11111+ 1 --------- --------- 100111 100000

Rappresentazione dei reali

Reali in notazione binaria bk-1 bk-2 … b2 b1 b0 , b-1 b-2 … bk-1 x 2 k-1 + bk-2 x 2 k-2 +… + b2 x 22 + b1 x 2 + b0 x 20 + b-1 x 2-1 + b-2 x 2-2 +… Da decimale a binario: Per la parte intera, come sappiamo fare (metodo delle divisioni)

REALE--> BINARIO cosa significa una parte frazionaria binaria: .1101001 2-1+ 2-2 + 2-4 + 2-7

.1101001 moltiplicarlo per 2 significa spostare il punto di un posto a destra 2-1 2-2... 1.101001 20 2-1.......

Se abbiamo un valore decimale in base 10: 0.99 come troviamo la sua rappresentazione in base 2? Ragioniamo come segue: Supponiamo che .99 = .b1b2b3...bk (binario) Allora 2 .99 = 1.98 = b1.b2b3...bk Quindi b1 è 1 e .98 è rappresentato da .b2b3...bk

Per trovare la rappresentazione binaria di un decimale lo moltiplichiamo per 2 ed osserviamo se 1 appare nella parte intera: rappresentazione binaria di .59 .592= 1.18 .182= 0.36 .362= 0.72 .722= 1.44 .442= 0.88 .882= 1.76 ....... .100101..... dipende da quanti bit abbiamo

Esempio 18.59 18  10010 (metodo della divisione per 2) .59  .100101...(metodo della moltiplic. per 2) 10010.100101....

Esercizi Convertire i seguenti numeri binari in formato decimale: 11,01 101,111 10,1 Esprimere i seguenti valori in notazione binaria: 4.5 2.75 Eseguire le seguenti somme binarie: 1010,001+1,101 111,11+0,01

Correzione degli esercizi Convertire i seguenti numeri binari in formato decimale: 11,01  3 +1/4 = 13/4 = 3.25 101,111  5 + 7/8 = 47/8 = 5.87 10,1  2.5 Esprimere i seguenti valori in notazione binaria: 4.5 100,1 2.75  10,11 Eseguire le seguenti somme binarie: 1010,001 + 1,101 1011,110 111,11 + 0,01 1000,00

SECONDA PARTE

Rappresentazione degli interi

Notazione in complemento a 2 n bit per la notazione Nella realta’ n=32 Per comodita’ noi supponiamo n=4 Numeri positivi 0 si rappresenta con 4 zeri 0000 1  0001, 2  0010 e cosi’ come gia’ visto fino al massimo positivo rappresentabile 0111  7 Numeri negativi -1 si rappresenta con 4 uni 1111  -1 -2 -> 1110, -3  1101 fino al minimo negativo rappresentabile 1000  -8 Gli interi rappresentabili con n bit [-2n-1 , 2n-1 -1] Nell’esempio [-24-1,24-1-1]=[-8,7]

Complemento a due su 3 e 4 bit

Complemento a due Bit piu’ a sinistra: segno (0 per positivi, 1 per negativi) Confrontiamo k e –k: da destra a sinistra, uguali fino al primo 1 incluso, poi una il complemento dell’altra Esempio (4 bit): 2=0010, -2=1110

Complemento a due: decodifica Se bit di segno =0  positivo, altrimenti negativo Se positivo, basta leggere gli altri bit Se negativo, scrivere gli stessi bit da destra a sinistra fino al primo 1, poi complementare, e poi leggere Es.: 1010 e’ negativo, rappresenta 110 (6), quindi -6

Da k a -k

Metodo alternativo: codifica e decodifica Intero positivo x  complemento a due su n bit: se x  2n-1-1 scrivo (x)2 , altrimenti non e’ rappresentabile Esempio: n=4, x=5, (5)2=0101, x=8>23-1=7 Intero negativo –x  complemento a due su n bit: se –x  -2n-1 calcolo 2n+(-x)=y e scrivo (y)2 Esempio: n=4, –x=-3 y=24-3=16-3=13 (13)2=1101 Compl. a due positivo (0 = bit + significativo) decimale: decodifica dal binario Esempio: n=4, 0111=(7)2 Compl. a due negativo (1 = bit + significativo)decimale: decodifico dal binario a decimale, ottengo y e poi sottraggo y-2n Esempio 1010 = (10)2 10-16=-6

Somma in complemento a due Si utilizza il solito metodo Anche per sottrazione  basta avere i circuiti per somma e complemento Es. (4 bit): 7-5 = 7 +(-5) = 0111 + 1011 = 0010 5 = 0101  -5 = 1011 L’eventuale n+1-simo bit generato a sinistra dal riporto deve essere troncato Esempio 0111+1011=10010 7 -5 2

Esempi di somme

Overflow Si sommano due numeri positivi tali che il risultato e’ maggiore del massimo numero positivo rappresentabile con i bit fissati (lo stesso per somma di due negativi) Si ha un errore di overflow se: Sommando due positivi si ottiene un numero che inizia per 1: 0101+0100=1001, 5+4=-7 Sommando due negativi viene un numero che inizia per 0: 1011+1100= (1)0111, -5+(-4)= 7 Nei computer c’e’ overflow con valori superiori a 2.147.483.647= 231

Esercizi Da complemento a 2 a base 10: 00011, 01111, 11100, 11010, 00000, 10000 Da base 10 a complemento a 2 su 8 bit: 6, -6, 13, -1, 0 Numero piu’ grande e piu’ piccolo per la notazione in complemento a 2 su 4, 6, 8 bit

Correzioni Da complemento a 2 a base 10: 00011 3, 01111 15, 11100  -4, 11010  -6, 00000  0, 10000  -16 Da base 10 a complemento a 2 su 8 bit: 6, -6, 13, -1, 0 00000110, 11111010, 00001101, 11111111, 00000000 Numero piu’ grande e piu’ piccolo per la notazione in complemento a 2 su 4, 6, 8 bit Numero piu’ piccolo -2n-1 (n=6  -25 = -32) Numero piu’ grande 2n-1 -1 (n=6  25-1 = 31)

Correzioni (1) Convertire i seguenti numeri binari in formato decimale: 11,01  3 +1/4 = 13/4 = 3.25 101,111  5 + 7/8 = 47/8 = 5.87 10,1  2.5 Esprimere i seguenti valori in notazione binaria: 4.5 100,1 2.75  10,11 Eseguire le seguenti somme binarie: 1010,001 + 1,101 1011,110 111,11 + 0,01 1000,00

Notazione in eccesso n bit  2n possibili configurazioni binarie ordinate da n zeri a n uni Supponiamo per comodita’ che n=4 0 e’ rappresentato da un 1 seguito da n-1 zeri: 01000 n zeri codifica -2n-1: - 2 4-1 = -8 0000 (0-8 = -8) n uni codifica 2n-1 – 1: 2 4-1-1= 7 1111 (15-8 = +7) n bit: notazione in eccesso 2n-1 rispetto al corrispondente binario Es.: 4 bit, notazione in eccesso 8

Notazione in eccesso 8

Esercizi Da eccesso 8 a decimale: Da decimale a eccesso 8 1110, 0111, 1000,0010, 0000, 1001 Da decimale a eccesso 8 5, -5, 3, 0, 7, -8 Numero piu’ grande e piu’ piccolo per la notazione in eccesso 8, 16, 32

Correzioni (1) Da eccesso 8 a decimale: Da decimale a eccesso 8 1110  14-8=6 0111  7-8=-1 1000, 0010, 0000, 1001 0, -6, -8, 1 Da decimale a eccesso 8 5  5+8  13 1101 -5  -5+8 3  0011 3, 0, 7, -8 1011, 1000, 1111, 0000

Correzioni (2) Numero piu’ grande e piu’ piccolo per la notazione in eccesso 8, 16, 32 eccesso 8: 8=2n-1  n=4 numero piu’ piccolo: -8, numero piu’ grande 7 eccesso 16: 16=2n-1  n=5 numero piu’ piccolo: -16 numero piu’ grande 15 eccesso 32: 32=2n-1  n=6 numero piu’ piccolo: -32 numero piu’ grande 31

Rappresentazione dei numeri reali (floating point)

Rappresentazione dei reali in un computer Bisogna rappresentare la posizione della virgola Notazione in virgola mobile (floating point): suddivisione in tre campi Esempio con 8 bit: Partendo da sinistra: primo bit  segno (0 pos., 1 neg.) Tre bit per esponente Quattro bit per mantissa V = 0.mantissa * 2^{exp}

Da floating point a decimale 01101011 Segno: 0  positivo, 1 negativo Anteporre 0, alla mantissa 01101011  0,1011 Interpretare l’ esponente come un numero in eccesso su tre bit (eccesso 4) 1106, 6-4 =2 Spostare la virgola della mantissa della quantita’ ottenuta dall’esponente a dx se il numero positivo a sx se e’ negativo 0,1011  10,11 Tradurre da binario a decimale mettendo il segno a seconda del bit piu’ significativo del foating point 10,11 2,75 Aggiungere il segno: +2,75

Altro esempio di decodifica 10111100 Segno: 1  negativo Mantissa: 1100  0,1100 Esponente: 011  -1 in notazione in eccesso 4  virgola a sinistra di 1 posto  0,01100 (3/8, infatti 2x2^(-2) + 2x2^(-3) ) Numero decimale: -3/8 = -0,375

Da decimale a floating point Da decimale a binario: 0.375 (=3/8) 0,011 La mantissa si ottiene dall’1 piu’ a sinistra completando con zeri i quattro bit 1100 Contare di quante posizioni si deve spostare la virgola per passare da 0,mantissa a 0,011. Il numero e’ negativo se la virgola va a sinistra 1 bit a sinistra  -1 Codificare il numero ottenuto in eccesso 4 -1 +4= 3  011 Mettere nel bit piu’ significativo il bit di segno 00111100

Errori di troncamento Codifichiamo 2 + 5/8= 2.625 in 8 bit Binario: 10,101 Mantissa: vorremmo scrivere 10101, ma abbiamo solo 4 bit  1010, tronco il bit meno significativo Esponente: 110 (2) Risultato: 01101010, che rappresenta 2.5 e non 2 + 5/8 Infatti: 0,1010  110 (2) 10,10  2+ ½ = 2.5

Esercizi Decodifica: 01001010, 01101101, 00111001 Codifica: 2.75, 5.25 Qual e’ il piu’ grande tra 01001001 e 00111101?

Correzioni (1) Decodifica: 0 100 1010 5/8 = 0.625 Infatti: Codifica: 0 100 1010 --> positivo 0,1010 100 --> 4-4=0 0.1010 1/2+1/8= 5/8 = 0.625 --> 0.625 Codifica: 2.75 --> 0 110 1011 Infatti: binario 10,11 1011 --> 2 posti a dx 2 --> 110 0 110 1011

Correzioni (2) Decodifica: 0 110 1101 3 + 1/4 = 13/4 = 3.25 0 011 1001 9/32 Codifica: 5.25  0 111 1010 Qual e’ il piu’ grande tra 01001001 e 00111101? Il primo e’ 0.56, il secondo e’ 0.40  il piu’ grande e’ il primo