Codifica di informazioni numeriche

Documenti analoghi
Calcolatori Elettronici Parte III: Sistemi di Numerazione Binaria

Sistemi di Numerazione Binaria

04 Aritmetica del calcolatore

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

Rappresentazione dei dati in memoria

Codice binario. Codice. Codifica - numeri naturali. Codifica - numeri naturali. Alfabeto binario: costituito da due simboli

La codifica. dell informazione

La codifica. dell informazione

Fondamenti di Programmazione. Sistemi di rappresentazione

Introduzione e Nozioni di Base. Prof. Thomas Casali

Algebra di Boole e porte logiche

Rappresentazione dei numeri reali in un calcolatore

Somma di numeri binari

Fondamenti di Programmazione. Sistemi di rappresentazione

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

Informatica di Base - 6 c.f.u.

Lezione 3. I numeri relativi

Sistemi di Elaborazione delle Informazioni

I sistemi di numerazione. Informatica - Classe 3ª, Modulo 1

modificato da andynaz Cambiamenti di base Tecniche Informatiche di Base

Rappresentazione e Codifica dell Informazione

La codifica binaria. Fondamenti di Informatica. Daniele Loiacono

Programma del corso. Rappresentazione delle Informazioni. Introduzione agli algoritmi. Architettura del calcolatore

Rappresentazione numeri relativi e reali

Rappresentazione dei Numeri

La codifica binaria. Informatica B. Daniele Loiacono

Esercitazione Informatica I (Parte 1) AA Nicola Paoletti

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

Elementi di informatica

Codifica binaria. Rappresentazioni medianti basi diverse

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

Fondamenti di Informatica

Rappresentazione di dati: numerazione binaria. Appunti per la cl. 3 Di A cura del prof. Ing. Mario Catalano

La rappresentazione dei dati

Fondamenti di Informatica. per la Sicurezza. a.a. 2003/04. Calcolo binario. Stefano Ferrari

Esercizi su Sistemi di Numerazione Binaria. Prof. Riccardo Torlone Università di Roma Tre

Aritmetica dei Calcolatori Elettronici

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

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

Sommario. I Sistemi di numerazione Posizionale e non Posizionale (1/2) I Codici. I Codici I Sistemi di numerazione Posizionali e non posizionali

Lezione 2. La conoscenza del mondo

3) Rappresentazione dei dati in memoria. Lab.Calc. AA2006/07

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

Codifica. Rappresentazione di numeri in memoria

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

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

La codifica binaria. Informatica B. Daniele Loiacono

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

ESERCITAZIONE. Uso dell accessorio calcolatrice per

Sistema Numerico Decimale

Laboratorio di Informatica

Rappresentazione dell informazione

Aritmetica dei Calcolatori

Calcolo numerico e programmazione Rappresentazione dei numeri

APPUNTI DI INFORMATICA

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

Introduzione. Elementi di Informatica. Sistemi di Numerazione Addizionali. Sistemi di Numerazione. Sistemi di Numerazione Romano

Decimale, binaria,esadecimale

I.4 Rappresentazione dell informazione

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

La codifica binaria. Sommario

Rappresentazione e Codifica dell Informazione

Rappresentazione dell informazione

Calcolo numerico e programmazione Rappresentazione dei numeri

Rappresentazione dell Informazione

Rappresentazione di numeri reali. Architetture dei Calcolatori (Lettere. Perché la rappresentazione in virgola mobile

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

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

Abilità Informatiche e Telematiche

Esercizi. Soluzioni degli esercizi. Soluzioni degli esercizi. Soluzioni degli esercizi

Fondamenti di Informatica - 1. Esercizi A.A. 2011/2012

Informatica. Informatica. Grandezze digitali. Grandezze analogiche

Numeri binari Conversioni numeriche: decimali-binario Operazioni algebriche con numeri binari Russo ing. Saverio

Rappresentazione dei Dati

Programma del corso. Rappresentazione delle Informazioni. Introduzione agli algoritmi. Architettura del calcolatore. Elementi di Programmazione

Rappresentazione informazione ed elementi di aritmetica dei computer

Calcolatori: Rappresentazione dei Dati e Aritmetica binaria

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

Lo schema seguente presenta le principali informazioni che devono essere rappresentate mediante codici binari.

Seconda lezione. Rivediamo un po di definizioni principali Proseguiremo con nuovi codici

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

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

La codifica digitale

Rappresentazione e Codifica dell Informazione

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

Codifica di Dati e Istruzioni. Architetture dei Calcolatori (Lettere. Sistema di Codifica: Numeri Interi (Decimali) Sistemi di Codifica.

Rappresentazione della informazione

Corso di Architettura degli Elaboratori

Corso di Sistemi di Elaborazione delle informazioni

Rappresentazione dei numeri ed aritmetica di

Aritmetica dei Calcolatori

Sistemi di numerazione

La "macchina" da calcolo

Lezione 2. Rappresentazione dell informazione

Utilizzata per rappresentare numeri frazionari nella. numero =(mantissa) 2 esponente. Il formato piu utilizzato e quello IEEE P754, rappresentato

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

Fondamenti di Informatica

Numeri frazionari. sistema posizionale. due modi: virgola fissa virgola mobile. posizionale, decimale

Sistemi numerici: numeri senza segno

Algebra di Boole e porte logiche

Transcript:

Università di Roma La Sapienza Dipartimento di Informatica e Sistemistica Codifica di informazioni numeriche Fondamenti di Informatica - Ingegneria Elettronica Leonardo Querzoni querzoni@dis.uniroma1.it A.A. 2008/2009

Informazione: concetto astratto L informazione deve essere rappresentata Utilizziamo un supporto per la rappresentazione Sul supporto vengono trascritti dei simboli codifica: informazione simboli decodifica: simboli informazione È necessario condividere un codice

Come vengono rappresentati i numeri all interno di un calcolatore? Numero = informazione astratta Numerale = stringa di caratteri che rappresenta un numero in un dato sistema di numerazione Uno stesso numero è rappresentabile con numerali differenti, a seconda del sistema di numerazione scelto Es: Il numero 3 3 III

La quantità di numeri rappresentabili dipende dal numero di cifre (simboli) che compongono il numerale. Es: interi a 3 cifre con segno in notazione decimale [-999,+999] Se il numero di cifre è finito si perdono alcune proprietà: Chiusura rispetto agli operatori Proprietà associativa Es: interi a 2 cifre in notazione decimale [00,+99] 78+36=?? (114) overflow 20-30=?? (-10) underflow 60+(50-40) (60+50)-40 Se il numero di cifre è finito è impossibile rappresentare tutti i numeri reali. Si pone un problema di approssimazione

Normalmente usiamo un sistema di numerazione posizionale In questi sistemi il numero rappresentato è dato dal valore di un polinomio i cui coefficienti ( detti pesi ) sono le potenze intere e positive di 10. Nei sistemi posizionali ciascuna cifra rappresenta il coefficiente moltiplicativo di una potenza della base l esponente è dato dalla posizione del coefficiente nella stringa numerica Es: 133 = 1x10 2 + 3x10 1 + 3x10 0 = 1x100 + 3x10 +3x1 Il sistema numerico Romano NON è posizionale

A seconda della base utilizzata individuiamo diversi sistemi di numerazione: B=10 decimale B=2 binaria B=8 ottale B=16 esadecimale Se la base è B occorrono B simboli! B=10 {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} B=2 {0, 1} B=8 {0, 1, 2, 3, 4, 5, 6, 7} B=16 {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}

I calcolatori elettronici moderni sono realizzati tramite elementi bistabili con cui è possibile rappresentare solo due simboli. Per questo motivo si utilizza il sistema di numerazione binario B=2 ogni simbolo rappresenta un bit di informazione Si usano potenze di 2: 2 0 =1 2 1 =2 2 2 =4 2 3 =8 2 4 =16 2 5 =32 2 6 =64 2 7 =128 2 8 =256 2 9 =512 2 10 =1024 Kilo 2 20 =1024K Mega 2 30 =1024M Giga 2 40 =1024G Tera

Conversione B=10 B=2 Si divide per due il numero segnando quoziente e resto Ci si ferma quando il quoziente è 0 (25)10 = (11001)2 N N/2 parte intera cifra binaria 25 12,5 12 1 12 6 6 0 6 3 3 0 3 1,5 1 1 1 0,5 0 1 0

Conversione B=2 B=10 Si moltiplica ogni coefficiente per la relativa potenza Si sommano i risultati Es: 1 1 0 1 0 0 1 0 1 1x2 8 + 1x2 7 + 0x2 6 + 1x2 5 + 0x2 4 + 0x2 3 + 1x2 2 +0x2 1 +1x2 0 256 + 128 + 32 + 4 + 1 421 (110100101)2=(421)10

Questi metodi di conversione sono generali e possono essere utilizzati per convertire un numero espresso con qualsiasi base da e verso la numerazione in base 10. Es: (228)10 = (???)16 N N/16 parte intera resto (cifra esadecimale) 228 14,25 14 (4)10 = (4)16 14 0,875 0 (14)10 = (E)16 0 (228)10 = (E4)16 Es: (721)8 7x8 2 + 2x8 1 + 1x8 0 = 7x64+16+1=(465)10

Conversione diretta esadecimale binario F 5 7 A 3 1 1111 0101 0111 1010 0011 0001

Come rappresentiamo i numeri negativi? Esistono diversi metodi: Rappresentazione in modulo e segno Rappresentazione in complemento a 2 Rappresentazione con eccesso 2 m-1

Rappresentazione con modulo e segno Un bit dedicato al segno (1 = numero negativo) i restanti bit dedicati al modulo Es: 8 bit 1 bit + 7 bit [-127,+127] -9 9 = (0001001)2-9 = (1-0001001)2 9 = (0-0001001)2 Problemi: Doppia rappresentazione dello 0 (+0 e -0) Addizioni e sottrazioni non possono essere trattate dallo stesso circuito (il segno deve essere trattato a parte)

Rappresentazione in complemento a 2 Immaginiamo di avere a disposizione n bit Il numero x è rappresentato come 2 n +x Permette di rappresentare i numeri [-2 n-1, 2 n-1-1)] Es: rappresentare x=-47 con n=8 bit e complemento a 2 2 n +x = 256-47 = 209 (-47)10 = (11010001)2 Es: rappresentare x=+1 con n=8 bit e complemento a 2 2 n +x = 256+1 = 257 (257)10 = (100000001)2 - il nono bit (il più significativo) è di troppo e va eliminato quindi (+1)10 = (00000001)2

Un metodo semplice per la complementazione: considero la rappresentazione binaria del modulo partendo da destra lascio inalterati tutti i bit fino al primo 1 compreso inverto tutti i bit seguenti Es: rappresentare x=-108 con n=8 bit e complemento a 2 ( x )10 = (108)10 = (01101100)2 01101100 rappresentazione binaria di partenza 01101100 partendo da destra lascio inalterati tutti i bit fino al primo 1 compreso 10010100 inverto tutti i bit che seguono (-108)10 = (10010100)2

Vantaggi singola rappresentazione per lo 0 semplifica le operazione aritmetiche (ed i relativi circuiti!) La somma di due numeri è calcolata sempre nello stesso modo, indipendentemente dal loro segno: C(X-Y) = C(X) + C(-Y) Es: 1 0 0 1 0 1 1 0 0 + (44)10 1 0 1 1 0 0 1 0 = -(78)10 1 1 0 1 1 1 1 0 -(34)10 1 1 1 1 1 1 1 0 1 0 1 0 0 + -(44)10 0 1 0 0 1 1 1 0 = (78)10 1 0 0 1 0 0 0 1 0 (34)10

Si può però verificare un fenomeno chiamato overflow: quando il risultato è troppo grande per essere rappresentato con i numeri a disposizione. Se: i numeri sommati hanno segni diversi non si ha mai overflow i numeri sommati hanno lo stesso segno si può verificare overflow In quest ultimo caso il risultato avrà segno opposto a quello degli operandi. Es: 1 1 1 1 1 0 1 0 0 1 1 1 0 + (78)10 0 0 1 1 1 1 0 0 = (60)10 1 0 0 0 1 0 1 0 -(118)10

Rappresentazione con eccesso 2 n-1 Immaginiamo di avere a disposizione n bit Il numero x è rappresentato come x+2 n-1 Permette di rappresentare i numeri [-2 n-1,+(2 n-1-1)] Es: rappresentare x=-3 con n=8 bit e con eccesso 2 n-1: x+2 n-1 = -3+128 = 125 (-3)10 = (01111101)2

Immaginiamo di avere 8bit a disposizione: Cifre binarie 01...11 10...00 10...01 00...00 11...11 Solo num. positivi +127 +128 +129 +0 +255 Modulo e segno Comp. a 2 Eccesso +127-0 -1 +0-127 +127-128 -127 +0-1 -1 0 +1-128 +127

Come possiamo rappresentare i numeri reali? Qualunque sia la rappresentazione adottata, la quantità di simboli per numerale utilizzata è finita quindi: L intervallo dei numeri rappresentabili è limitato All interno di questo intervallo solo alcuni numeri sono rappresentabili Due modi per rappresentare i numeri reali: Rappresentazione in virgola fissa Rappresentazione in virgola mobile

Con la rappresentazione in virgola fissa un certo numero di cifre è dedicato alla parte intera, ed altre sono dedicate alla parte decimale: 1285, 778 n m Permette di rappresentare l intervallo dei reali compreso tra: -B n-1,b m -0,0...01 0 0,0...01 (B n-1-1),b m La precisione massima raggiungibile è 1/B m Parte intera e parte decimale vengono convertite in due fasi distinte.

Per convertire la parte decimale si procede in modo simile. Es: (0.8125)10 (???)2 N (0.8125)10 (0.1101)2 2xN parte intera 0.8125 1.625 1 cifra binaria 0.625 1.25 1 1 0.25 0.5 0 1 0.5 1 1 0 0 1

Es: (0.1101)2 (???)10 1 1 0 1 1x2-1 + 1x2-2 + 0x2-3 + 1x2-4 0.5 + 0.25 + 0.0625 (0.1101)2 (0.8125)10 0.8125

La rappresentazione in virgola fissa obbliga a sprecare un certo numero di bit per la parte decimale (intera) anche se il numero da rappresentare non ne avrebbe bisogno. Per questo si adotta la rappresentazione in virgola mobile che si basa sulla notazione scientifica Permette di rappresentare l intervallo dei reali compreso tra: 0, (B n 1) B Bm 1 esponente (m) 1285,778 = 0,1285778 x 10 4 0, 0... 1 B (Bm 1) 0 mantissa (n) 0, 0... 1 B (Bm 1) 0, (B n 1) B Bm 1 Overflow negativo Underflow negativo Underflow positivo Overflow positivo

Esempio in base 10: n=5 m=3 più il segno sia per la mantissa che per l esponente Posso rappresentare (oltre allo 0) i numeri compresi tra: -0,99999x10 999 e -0,00001x10-999 0,00001x10-999 e 0,99999x10 999 Rispetto alla numerazione in virgola fissa posso: rappresentare intervalli più grandi aumentare la precisione dell approssimazione

Dato che la precisione della rappresentazione dipende dalla quantità di numerali (bit nel caso di nostro interesse) dedicati a mantissa ed esponente, sorge la necessità di uno standard: IEEE-754 numeri a precisione singola: 32bit 1 bit per il segno 8 bit per l esponente (espresso con eccesso) 23 bit per la mantissa permette la rappresentazione di numeri compresi tra: -10 38 e -10-45 10-45 e 10 38 con una precisione di circa 7 cifre decimali numeri in precisione doppia: 64bit 1 bit per il segno 11 bit per l esponente 52 bit per la mantissa

Esempio: convertire il seguente numero espresso nel formato IEEE-754 a singola precisione in un numero decimale. 0-01111110-101000000000000 00000000000 Il segno è positivo. Calcolo l esponente: (01111110)= 0+2 6 +2 5 +2 4 +2 3 +2 2 +2 1 =126 Devo rimuovere l eccesso! esponente = 126-128 = -2 La parte frazionaria della mantissa è (.101)2 Il numero è: X = (-1) 0 (1.101)2 2-2 = (1+1/2+1/8)10 2-2 = (1+0.5+0.125) 0.25 =(1.625) 0.25 = 0.40625