Codifica dati e istruzioni. Lezione 9. Codifica dati e istruzioni. Codifica dati e istruzioni. Codifica binaria dell informazione

Documenti analoghi
Codifica e aritmetica binaria

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2

La codifica dell informazione

Introduzione ai sistemi informatici 1

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

La Rappresentazione dell Informazione

Codifica binaria. Rappresentazioni medianti basi diverse

Rappresentazione dell informazione. Gabriella Trucco

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

La codifica dell informazione

Codifica dell informazione

La codifica binaria. Fondamenti di Informatica. Daniele Loiacono

La codifica binaria. Fondamenti di Informatica. Daniele Loiacono

La codifica binaria. Informatica B. Daniele Loiacono

Rappresentazione dell informazione

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

Codifica dell Informazione

modificato da andynaz Cambiamenti di base Tecniche Informatiche di Base

Codifica dell informazione

La codifica. dell informazione

Codifica dell Informazione

Codifica binaria dell informazione

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

1.2f: Operazioni Binarie

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

Codifica dell Informazione per il Calcolo Scientifico

Rappresentazione dell informazione

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

Somma di numeri binari

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

La codifica. dell informazione

UD 1.2e: La codifica Digitale dei Numeri CODIFICA DIGITALE DEI NUMERI

Modulo 1: Le I.C.T. UD 1.2e: La codifica Digitale dei Numeri

Informatica. Ottali ed esadecimali. Numeri naturali binari nei calcolatori 02/03/2007. Introduzione ai sistemi informatici 1

Rappresentazione dell Informazione

Fondamenti di informatica

Lezione 2. Rappresentazione dell informazione

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

Sistemi di Elaborazione delle Informazioni

La codifica binaria. Informatica B. Daniele Loiacono

Rappresentazione dell Informazione

LA CODIFICA DELL INFORMAZIONE. Prof. Enrico Terrone A. S: 2014/15

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

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

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

Politecnico di Bari Sede di Foggia. docente: Prof. Ing. Michele Salvemini

Sommario. Sistema binario. I Sistemi di numerazione. Codifica ASCII. Valori Numerici Negativi. Valori Numerici Reali. Posizionali e non posizionali

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

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

Informatica per le discipline umanistiche 2

Rappresentazione binaria

Codifica dell informazione

LA CODIFICA DELL INFORMAZIONE

Definizione operativa di informazione. Codifica dell informazione. Alfabeto, sintassi e semantica. Codifica binaria dell informazione

Codifica dell informazione

Lezione 1. Rappresentazione dei numeri. Aritmetica dei calcolatori. Rappresentazione dei numeri naturali in base 2

Rappresentazione dell informazione

Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari. Copyright 2005 The McGraw-Hill Companies srl

Codifica binaria dell informazione

Corso di Architettura degli Elaboratori

Corso di Architettura degli Elaboratori

I.4 Rappresentazione dell informazione

Rappresentazione binaria

L'Informazione e la sua Codifica. Maurizio Palesi

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

Esercitazioni - Informatica A

Rappresentazione dell informazione

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

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

Sistema Numerico Decimale

Fundamentals of Computer Science

Calcolatori Elettronici Parte III: Sistemi di Numerazione Binaria

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

Rappresentazione dei numeri

Lezione 2. Rappresentazione dell informazione

Sistemi di Numerazione Binaria

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

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

Lezione 3. I numeri relativi

Codifica. Rappresentazione di numeri in memoria

Informatica e Bioinformatica: Rappresentazione dell Informazione

Sistemi di Numerazione Binaria

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

= = = Codifica dell informazione

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

Rappresentazione delle Informazioni. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni

Introduzione e Nozioni di Base. Prof. Thomas Casali

Lezione 2. Rappresentazione dell informazione

Rappresentazione dell informazione

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova

= = =

Rappresentazione e Codifica dell Informazione

Architetture dei Calcolatori (Lettere

Calcolatori Elettronici

Rappresentazione dell informazione

Aritmetica dei Calcolatori Elettronici

Rappresentazione delle frazioni proprie Aritmetica in binario Barbara Masucci

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

Transcript:

24//22 Codifica dati e istruzioni Lezione 9 Codifica dell informazione Algoritmi = istruzioni + dati. Per scrivere un programma che descriva un algoritmo è necessario rappresentare istruzioni e dati utilizzando un formato che il calcolatore sia in grado di: Memorizzare Elaborare Trasmettere 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 2 Codifica dati e istruzioni Alfabeto dei simboli Esempio: cifre, Esempio: cifre,, 2,, 9, separatore decimale (,), separatore delle migliaia (.), segno positivo (+) e negativo (-). Regole di composizione (sintassi) che definiscono le sequenze di cifre (parole) ammissibili: Esempio:.234,5 è la rappresentazione di un numero reale. Esempio:,23,45 non lo è. Codifica dati e istruzioni Codice (semantica): insieme di regole che ad ogni configurazione ammissibile associa un entità di informazione.234,5 = x 3 + 2 x 2 + 3 x + 4 x + 5 x -,23,45 =? Lo stesso alfabeto può essere utilizzato con codici diversi: 23,456 = x 2 + 2 x + 3 x + 4 x - + 5 x -2 + 5 x -3 (IT) 23,456 = x 5 + 2 x 4 + 3 x 3 + 4 x 2 + 5 x + 5 x (UK) 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 3 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 4 Codifica binaria dell informazione Il calcolatore utilizza un alfabeto binario: usiamo dispositivi elettronici digitali in grado di assumere due solo stati: acceso/spento, ON/OFF, /, VERO/FALSO. Un alfabeto binario non limita le funzionalità di un calcolatore. Il simbolo o cifra binaria si indica con bit (da Binary digit): quantità d informazione che si ottiene selezionando una configurazione da un insieme che ne contiene due. La risposta SI oppure NO a una domanda porta bit di informazione. Codifica binaria dell informazione Il calcolatore tratta diversi tipi di dati (numeri, caratteri, ecc.) tutti rappresentati con la codifica binaria. Problema: assegnare un codice univoco a tutti gli oggetti compresi in un insieme predefinito. Esempio: associare un codice binario ai giorni della settimana. 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 5 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 6 Corso Informatica A Allievi Gestionali prof. C. Silvano

24//22 Codifica binaria dell informazione Quanti oggetti diversi posso codificare con parole binarie composte da k bit? bit: 2 = 2 stati (, ) 2 oggetti 2 bit: 2 2 = 4 stati (,,, ) 4 oggetti 3 bit: 2 3 = 8 stati (,,,,,,, ) 8 oggetti k bit: 2 k stati 2 k oggetti Codifica binaria dell informazione Se passiamo da una parola binaria di k bit ad una parola di k+ bit si raddoppia il numero di oggetti che si possono rappresentare (2 k+ ). 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 7 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 8 Codifica binaria dell informazione Quanti bit mi servono per codificare N oggetti: N 2 k k log 2 N k = log 2 N Ipotesi implicita: le parole di un codice hanno tutte la stessa lunghezza. Definire un codice Identificare due insiemi: Insieme delle configurazioni ammissibili; Insieme degli oggetti da rappresentare. Associare gli elementi dei due insiemi 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 9 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano Esempio Associare una codifica binaria ai giorni della settimana. Quanti bit devono avere le parole binarie usate per identificare i giorni della settimana (7 oggetti diversi)? k = log 2 7 = 3 Esempio Insieme delle configurazioni ammissibili LUN MAR VEN MER GIO SAB DOM Insieme degli oggetti da codificare 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 2 Corso Informatica A Allievi Gestionali prof. C. Silvano 2

24//22 Esempio Byte Codice LUN MAR VEN MER GIO SAB DOM bit rappresenta 2 stati: oppure. Byte rappresenta 8 bit 2 8 = 256 stati KiloByte [KB] = 2 Byte = 24 Byte 3 Byte MegaByte [MB] = 2 2 Byte = 48576 Byte 6 Byte GigaByte [GB] = 2 3 Byte 9 Byte TeraByte [TB] = 2 4 Byte 2 Byte 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 3 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 4 Codifica binaria dei caratteri Quanti sono gli oggetti da rappresentare? 26 lettere maiuscole 26 lettere minuscole cifre Circa 3 simboli d interpunzione (, ; ) Circa 3 caratteri di controllo (EOF, CR, ) Totale circa 2 oggetti complessivi k = log 2 2 = 7. Codifica binaria dei caratteri Codice ASCII (American Standard Code for Information Interchange) utilizza 7 bit può rappresentare 2 7 = 28 caratteri detti caratteri ASCII Standard. Codice ASCII esteso utilizza 8 bit ( Byte) può rappresentare 2 8 = 256 caratteri detti caratteri ASCII estesi. Tale codice comprende i caratteri ASCII standard e alcuni caratteri semigrafici (cornici, lettere nazionali, simboli matematici, ecc.) Codice UNICODE utilizza 6 bit (2 Byte) 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 5 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 6 Codifica binaria delle istruzioni Quante sono le istruzioni da codificare? Quanti bit devono avere le sequenze di bit (parole binarie) usate per identificare le istruzioni? Quale codifica (codice operativo) assegnare alle sequenze di bit che rappresentano le istruzioni? Codifica binaria delle istruzioni Esempio: Insieme delle istruzioni composto da istruzioni: NOP LOAD STORE ADD SUB MUL DIV BRANCH JUMP FUNC_CALL RETURN 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 7 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 8 Corso Informatica A Allievi Gestionali prof. C. Silvano 3

24//22 Codifica binaria delle istruzioni Servono k = log 2 = 4 bit: ISTRUZIONE CODICE OPERATIVO NOP LOAD STORE ADD SUB MUL DIV BRANCH JUMP FUNC_CALL RETURN Codifica binaria delle istruzioni Oltre al codice operativo è necessario fare riferimento ai dati necessari per l esecuzione dell istruzione. Esempio ADD ha bisogno che sia specificato dove leggere i due dati da sommare (operandi sorgente) e dove scrivere il risultato (operando destinazione) Il numero dei dati da specificare è variabile, in funzione delle istruzioni. Esempio: NOP JUMP R ADD R, R, R2 Codice operativo Codice operativo Codice operativo Registro Registro Registro 2 Registro 3 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 9 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 2 Codifica binaria delle istruzioni Esempio: Banco di registri (Register File) composto da 6 registri (R, R,, R5) servono k = log 2 6 = 4 bit: REGISTRO R R R2 R3 R4 R5 R6 R7 INDIRIZZO REGISTRO R8 R9 R R R2 R3 R4 R5 INDIRIZZO NOP JUMP R ADD R, R, R2 Esempio 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 2 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 22 Notazione posizionale Consideriamo i numeri interi assoluti (numeri naturali più lo zero). Notazione posizionale in base b: Alfabeto: c i { b-} c k c k- c c rappresenta: N = c k x b k + c k- x b k- + + c x b = Σ (i= k) c i x b i c bit meno significativo c k bit più significativo Notazione posizionale Basi più frequentemente utilizzate: base 2 : c i {, } base 8: c i {,, 2, 3, 4, 5, 6, 7} base : c i {,, 2, 3, 4, 5, 6, 7, 8, 9} base 6: c i {,, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 23 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 24 Corso Informatica A Allievi Gestionali prof. C. Silvano 4

24//22 Codifica binaria Numeri binari: base b = 2 Alfabeto binario: cifre c i {, } (c k c c ) 2 rappresenta: N = Σ (i= k) c i x 2 i Conversione binario decimale Dato il numero N espresso in base 2, basta riscriverlo secondo la notazione posizionale utilizzando cifre e potenze della base. Esempi: N = 2 N = x 2 3 + x 2 2 + x 2 + x 2 = 3 N = 2 N = x 2 5 + x 2 4 + x 2 3 + x 2 2 + x 2 + x 2 = 37 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 25 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 26 Conversione decimale binario Si calcolano i resti della divisione per due finché il risultato di una divisione diventa zero: Esempio: N = 23 23 : 2 = resto R = b = : 2 = 5 resto R = b = 5 : 2 = 2 resto R 2 = b 2 = 2 : 2 = resto R 3 = b 3 = : 2 = resto R 4 = b 4 = Conversione decimale binario Esempio: N = 8 8 : 2 = 9 resto R = b = 9 : 2 = 4 resto R = b = 4 : 2 = 2 resto R 2 = b 2 = 2 : 2 = resto R 3 = b 3 = : 2 = resto R 4 = b 4 = 8 = 2 23 = 2 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 27 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 28 Codifica ottale Utile per rappresentare sinteticamente i valori binari. Numeri ottali: base b = 8 Alfabeto ottale: cifre c i {,, 2, 3, 4, 5, 6, 7} (c k c c ) 8 rappresenta: N = Σ (i= k) c i x 8 i Conversione ottale decimale Dato il numero N espresso in base 8, basta riscriverlo secondo la notazione posizionale utilizzando cifre e potenze della base. Esempi: N = 354 8 N = 3 x 8 2 + 5 x 8 + 4 x 8 = 92 + 4 + 4 = 236 N = 46 8 N = x 8 3 + 4 x 8 2 + 6 x 8 + x 8 = 52 + 256 + 48 + = 87 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 29 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 3 Corso Informatica A Allievi Gestionali prof. C. Silvano 5

24//22 Conversione decimale ottale Si calcolano i resti della divisione per otto finché il risultato di una divisione diventa zero: Esempio: N = 492 492 : 8 = 86 resto R = b = 4 86 : 8 = 23 resto R = b = 2 23 : 8 = 2 resto R 2 = b 2 = 7 2 : 8 = resto R 3 = b 3 = 2 Conversione ottale binario Ogni cifra ottale corrisponde a tre cifre binarie: [], [], 2 [], 3 [] 4 [], 5 [], 6 [], 7 [] E sufficiente ricordarsi (o derivare) la rappresentazione binaria dei numeri da a 7. Esempio: N = 354 8 [] [] [] = 2 492 = 2724 8 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 3 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 32 Conversione binario ottale Suddividere le cifre binarie (partendo da destra verso sinistra) tenendo conto che tre cifre binarie corrispondono a una cifra ottale N = 2 [] [] [] = 354 8 Codifica esadecimale Utile per rappresentare sinteticamente i valori binari. Numeri esadecimali: base b = 6 Alfabeto esadecimale: cifre c i {,, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} (c k c c ) 6 rappresenta: N=Σ (i= k) c i x 6 i N = 2 [] [] [][]= 47 8 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 33 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 34 Conversione esadecimale decimale Dato il numero N espresso in base 6, basta riscriverlo secondo la notazione posizionale utilizzando cifre e potenze della base. Esempi: N = EC 6 N = 4 x 6 + 2 x 6 = 224 + 2 = 236 N = 33 6 N = 3 x 6 2 + 3 x 6 + x 6 = 768 + 48 + = 87 Conversione decimale esadecimale Si calcolano i resti della divisione per sedici finché il risultato di una divisione diventa zero: Esempio: N = 492 492 : 6 = 93 resto R = b = 4 93 : 6 = 5 resto R = b = 3 (D) 5 : 6 = resto R 2 = b 2 = 5 492 = 5D4 6 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 35 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 36 Corso Informatica A Allievi Gestionali prof. C. Silvano 6

24//22 Conversione esadecimale binario Ogni cifra esadecimale corrisponde a quattro cifre binarie: [], [], 2 [], 3 [] 4 [], 5 [], 6 [], 7 [] 8 [], 9 [], A[], B [] C [], D [], E [], F [] E sufficiente ricordarsi (o derivare) la rappresentazione binaria su 4 bit dei numeri da a 5. N = 354 6 [] [] [] = 2 Conversione binario esadecimale Suddividere le cifre binarie (partendo da destra verso sinistra) tenendo conto che quattro cifre binarie corrispondono a una cifra esadecimale. N = 2 [] [] [] = 354 6 N = 2 [] [] []= 339 6 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 37 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 38 Codifica binaria su n bit Con una sequenza di n bit si possono rappresentare 2 n numeri interi assoluti da a 2 n -. Esempio: n = 4 bit 2 4 = 6 numeri interi assoluti da a 5. La lunghezza delle sequenze di bit adottate stabilisce il massimo numero che può essere rappresentato. 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 39 Rappresentazione dei numeri interi assoluti da a 5 per diverse basi Base 2 Base 8 Base Base 6 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 N b 7 7 7 8 8 9 9 2 A 3 B 4 2 C 5 3 D 6 4 E 7 5 F 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 4 Codifica binaria su n+ bit Se passiamo da una sequenza di lunghezza n bit ad una sequenza di n+ bit si raddoppiano i numeri che si possono rappresentare (2 n+ ). Esempio: n = 4 bit 2 4 = 6 numeri da a 5. n = 5 bit 2 5 = 32 numeri da a 3. 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 4 Codifica binaria su 2n bit Se raddoppiamo la lunghezza di una sequenza da n bit a 2n bit i numeri che si possono rappresentare aumentano esponenzialmente (2 2n ) Esempio: n = 4 bit 2 4 = 6 numeri da a 5. n = 8 bit 2 8 = 256 numeri da a 255. Esempio: Con 32 bit si possono rappresentare 2 32 numeri naturali da a 2 32 -= 4 294 967 295 4 x 9. Con 64 bit si possono rappresentare 2 64 numeri naturali da a 2 64 -= 6 x 8 =,6 x 9 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 42 Corso Informatica A Allievi Gestionali prof. C. Silvano 7

24//22 Addizione binaria Addizione binaria tra due bit (a + b): oltre al bit di somma S occorre memorizzare il bit di riporto R (carry): a b S R Addizione binaria su n bit Addizione binaria tra due numeri interi assoluti di lunghezza n bit: si allineano i due numeri in colonne da destra verso sinistra (cioè partendo dal bit meno significativo); si eseguono le somme bit a bit da destra verso sinistra considerando per ogni colonna (successiva alla colonna corrispondente al bit meno significativo) il riporto generato dalla colonna alla sua destra 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 43 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 44 Addizione binaria tra due bit ai e bi con riporto in ingresso Ri ai bi Ri Si Ri+ Esempio 4 bit: a = b = R A 5 B 3 A+B 8 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 45 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 46 Overflow Se si considerano due numeri interi assoluti rappresentati su n bit si verifica la condizione di overflow ogni volta che il risultato supera 2 n - Esempio 4 bit: a = b = R A 5 B A+B 6 Rappresentazione dei numeri interi relativi (o con segno) Codifica modulo e segno Codifica in complemento a due 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 47 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 48 Corso Informatica A Allievi Gestionali prof. C. Silvano 8

24//22 Codifica modulo e segno Soluzione: indicare il segno seguito dal valore assoluto. bit per indicare il segno (convenzione: positivo e negativo) Restanti(n-) bit per rappresentare il modulo (o valore assoluto) del numero Indispensabile indicare il numero n di bit utilizzati Esempio: 4 bit +6 = ms 6 = ms Problema: ci sono 2 rappresentazioni dello zero: Esempio: 4 bit + = ms = ms Codifica modulo e segno Con una sequenza di n bit si possono rappresentare 2 n numeri interi assoluti da a 2 n -. Con una sequenza di n bit si possono rappresentare con la codifica modulo e segno 2 n- numeri interi relativi compresi nell intervallo da (2 n- ) a 2 n- -. Esempio: 4 bit 6 numeri interi assoluti da a 5 4 bit 5 numeri interi relativi da 7 a 7 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 49 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 5 Diverse interpretazioni della codifica binaria su 4 bit Rappres. numeri interi assoluti 2 3 4 5 6 7 8 9 2 3 4 5 Rappr. numeri interi relativi (modulo e segno) 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 5 2 3 4 5 6 7 - - -2-3 -4-5 -6-7 Codifica in complemento a due Alfabeto binario: Anche il segno è rappresentato da o Indispensabile indicare il numero n di bit utilizzati Complemento a due: Date le sequenze di n bit, per rappresentare il numero X si utilizza il valore binario corrispondente a 2 n + x Esempio: 4 bit +6 2 4 + 6 = 22 [] C2 4 bit -6 2 4-6 = [] C2 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 52 Codifica in complemento a due Con una sequenza di n bit si possono rappresentare con la codifica in complemento a due 2 n numeri interi relativi compresi nell intervallo da 2 n- a 2 n- -. Esempio: 4 bit 6 numeri interi relativi da 8 a 7 Notare: c è una sola rappresentazione dello zero: 4 bit: + = C2 (mentre C2 = -8 ) Ciò impedisce il bilanciamento tra numeri positivi e negativi: 4 bit: zero + 7 numeri positivi (fino a 7) + 8 numeri negativi (fino a 8). Codifica in complemento a due Primo metodo pratico per calcolare la rappresentazione di X a partire da quella di X: Effettuare il complemento di ogni bit di X e aggiungere. Esempio: 4 bit +6 = C2 Complemento di tutti i bit: C2 Aggiungere : ( + ) = C2 =-6 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 53 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 54 Corso Informatica A Allievi Gestionali prof. C. Silvano 9

24//22 Codifica in complemento a due Secondo metodo pratico per calcolare la rappresentazione di X a partire da quella di X: Partendo da destra verso sinistra, lasciare invariati tutti i bit fino al primo compreso, e complementare tutti gli altri bit. Esempio: 4 bit +6 = C2 Gli ultimi due bit rimangono invariati Complementare gli altri 2 bit: C2 =-6 Codifica in complemento a due Data la rappresentazione di un numero su n bit, la rappresentazione dello stesso numero su n+ bit si ottiene aggiungendo a sinistra un bit uguale al bit più significativo (operazione di estensione del segno). Esempio: Rappresentazione di 6 su 4 bit = C2 Rappresentazione di 6 su 5 bit = C2 Rappresentazione di 6 su 8 bit = C2 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 55 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 56 Diverse interpretazioni della codifica binaria su 4 bit Rappres. numeri interi assoluti 2 3 4 5 6 7 8 9 2 3 4 5 Rappr. numeri interi relativi (modulo e segno) 2 3 4 5 6 7 - - -2-3 -4-5 -6-7 Rappr. numeri interi relativi (complemento a due) 2 3 4 5 6 7-8 -7-6 -5-4 -3-2 - 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 57 Osservazioni In entrambe le rappresentazioni (MS e C2) i numeri positivi iniziano con, quelli negativi con (è come se il primo bit rappresentasse il segno del numero). 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 58 Osservazioni Maggiore vantaggio della notazione in complemento a due: la sottrazione tra due numeri (a b) si effettua come somma algebrica a + (-b) C2. Esempi: 4 6 = 4 + (-6) C2 = + = = (-2) C2 7 3 = 7 + (-3) C2 = + = [] = +4 Somma algebrica Si consideri l operazione di somma algebrica di due numeri interi di n bit dotati di segno e rappresentati in complemento a due Il risultato dell addizione è corretto, a patto che cada nel campo dei valori rappresentabili (-2 n- N 2 n- ), pur di trascurare l eventuale riporto in uscita dal bit più significativo. 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 59 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 6 Corso Informatica A Allievi Gestionali prof. C. Silvano

24//22 Esempi 2 + 3 = + = = 5-5 - 2 = (-5)+ (-2) = + = [] = -7-3 (-7) = (-3)+ 7 = + = [] = +4-7 = (-7)+ (-) = + = [] = -8 +2 (-3) = 2 + 3 = + = = +5 Overflow/underflow Il segnale di riporto in uscita non è sufficiente per indicare un overflow/underflow di una somma algebrica di numeri interi con segno. Si ha superamento di capacità se: Sommando due numeri positivi si ottiene un risultato negativo (generazione di overflow) Sommando due numeri negativi si ottiene un risultato positivo (generazione di underflow) 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 6 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 62 Esempi 7 + 4 = + = = -5 NO! OVERFLOW! -4-6 = (-4)+ (-6) = + = [] = 6 NO! UNDERFLOW! Rappresentazione dei numeri reali Problema: per una rappresentazione esatta di molti numeri di questo tipo sarebbe richiesto un numero di cifre illimitato (esempio: /3 =,3333333. Oppure π =3,459265359 ) Per rappresentare tali numeri con una sequenza di bit di lunghezza finita a uso di un calcolatore è necessario approssimare tali numeri con numeri razionali con un numero di cifre decimali ridotto e prefissato, ma comunque sufficiente a garantire il grado di precisione richiesto. 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 63 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 64 Rappresentazione dei numeri razionali Rappresentazione in virgola fissa Rappresentazione in virgola mobile (floating point) Rappresentazione binaria in virgola fissa Esempi:, 2 = x 2 - + x 2-2 + x 2-3 + x 2-4 =,5 +,25 +,625 =,6875, 2 = x 2 + x2 + x 2 - + x 2-2 + x 2-3 = 2 + +,5 +,25 = 3,625 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 65 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 66 Corso Informatica A Allievi Gestionali prof. C. Silvano

24//22 Rappresentazione in virgola mobile Usata spesso (anche in decimale) per rappresentare numeri molto grandi o molto piccoli (esempio,35 x 56 ). Rappresentazione in virgola mobile: N = ± M x b ±e Mantissa: parte frazionaria compresa tra e Esponente: numero intero (positivo, negativo o nullo) Rappresentazione binaria in virgola mobile N = s x M x 2 e Rappresentazione della mantissa M in modulo e segno: bit per il segno s e m bit per la mantissa M Rappresentazione dell esponente e polarizzato: n bit per l esponente s ( bit) e (n-bit) M (m-bit) 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 67 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 68 Rappresentazione binaria in virgola mobile Convenzioni adottate: Rappresentazione normalizzata della mantissa secondo lo standard IEEE (Institute of Electrical and Electronic Engineers): numero binario la cui parte intera è sempre pari a (nel campo degli m bit della mantissa compare solo la parte frazionaria). Esponente polarizzato su n bit ottenuto sommando all esponente originario una costante (bias) che lo renda sempre positivo (eliminando quindi il segno dell esponente) Esempio Rappresentazione in virgola mobile su 6-bit del numero decimale 5,5 supponendo n =7, m= 8 e bias = 64 Rappresentazione binaria: (,) 2 Rappresentazione normalizzata: (,) 2 x ( ) 2 Esponente polarizzato: (2) +(64) =(66) cioè ( ) 2 + ( ) 2 = ( ) 2 ( bit) (7-bit) (8-bit) 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 69 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 7 Overflow/underflow La rappresentazione in virgola mobile può dar luogo a overflow(underflow) dell esponente quando il valore dell esponente supera il massimo (minimo) previsto dalla convenzione adottata per la rappresentazione del numero Esempio: n = 7 bit l esponente non polarizzato del numero originario può variare tra 64 e +63. Rappresentazione in virgola mobile Standard IEEE 754 985 per uniformare la gestione della rappresentazione dei numeri in virgola mobile. Quattro formati per la rappresentazione dei numeri in virgola mobile: Formati base Singola precisione (32 bit) Doppia precisione (64 bit) Formati estesi Singola precisione Doppia precisione 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 7 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 72 Corso Informatica A Allievi Gestionali prof. C. Silvano 2

24//22 Eseguire le seguenti conversioni di base: (92) base 3 (92) base 5 (523,5) base 2 (523,5) base 8 (,) 2 base 8 (,2) 3 base Dato che (79) = (42) b determinare il valore della base b. 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 73 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 74 Scrivere una tabella che esprima la codifica binaria su 3 bit e le corrispondenti rappresentazioni: dei numeri interi assoluti; dei numeri interi relativi in MS; dei numeri interi relativi in C2. Dati i seguenti numeri decimali: 23456, 89765, 67489,, 233, Si trasformino in base 2; Si trasformino in base 3; Si trasformino in base 5; Si trasformino in base 7. 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 75 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 76 Dare l'interpretazione, fornendone il corrispondente valore in base completo di segno, del numero binario nei seguenti casi: Numeri interi assoluti; Numeri interi relativi in MS; Numeri interi relativi in C2. Calcolare il numero minimo di bit necessari per codificare 48.. informazioni utilizzando un alfabeto binario. Calcolare il numero minimo di bit necessari per codificare 3 623 235 informazioni utilizzando un alfabeto binario. 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 77 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 78 Corso Informatica A Allievi Gestionali prof. C. Silvano 3

24//22 Dato il valore in modulo e segno -77, fornirne la codifica binaria in complemento a 2 utilizzando il minor numero di bit e ipotizzando che il valore fornito (il valore -77) sia espresso nelle seguenti basi: Base 8 Base Base 6 Dati i seguenti numeri: (23456) 7, (2345) 5, (2767) 8, (), (C2CF) 6 Convertire ciascuno in decimale e in binario. 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 79 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 8 Calcolare il risultato delle seguenti operazioni binarie tra numeri interi con segno rappresentati in complemento a due su 8 bit. Scrivere l equivalente rappresentazione dei numeri e del risultato in decimale (verificando la correttezza del risultato ottenuto). + + + Svolgere le operazioni A+B e A-B, in aritmetica binaria utilizzando la rappresentazione in complemento a due, dei seguenti valori numerici (espressi in base ), identificando la presenza di un eventuale overflow: A=(4) e B=(26) A=(2) e B=(74) A=(2) e B=() A=(-2) e B=(24) 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 8 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 82 Calcolare il risultato dell operazione binaria di moltiplicazione tra i seguenti due numeri interi assoluti a = b = rappresentati su 4 bit. Scrivere l equivalente rappresentazione dei numeri e del risultato in decimale (verificando la correttezza del risultato ottenuto). 24//22 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 83 Corso Informatica A Allievi Gestionali prof. C. Silvano 4