Architetture dei calcolatori e delle reti. Lezione 2

Documenti analoghi
Lezione 2. Rappresentazione dell informazione

Lezione 2. Rappresentazione dell informazione

La codifica binaria. Sommario

Lezione 2. Rappresentazione dell informazione

Lezione 2. Rappresentazione dell informazione

Numerazione Simbolica

Numerazione Simbolica. Sommario

Rappresentazione dell informazione

Rappresentazione dell informazione

Rappresentazione dell informazione

Lezione 2. Rappresentazione dell informazione

Lezione 2. Rappresentazione dell informazione

Rappresentazione dell informazione

Fondamenti di informatica

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

Introduzione e Nozioni di Base. Prof. Thomas Casali

Sistemi di Elaborazione delle Informazioni

Codifica binaria. Rappresentazioni medianti basi diverse

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

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

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

Rappresentazione dell informazione

Rappresentazione dell informazione

Sistemi di Numerazione Binaria

Fondamenti di Informatica

Aritmetica dei Calcolatori Elettronici

Esame di Informatica. Facoltà di Scienze Motorie LE UNITA DI MISURA (1/4) LE UNITA DI MISURA (3/4) LE UNITA DI MISURA (2/4) Lezione 2

Corso di Architettura degli Elaboratori

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

Corso di Architettura degli Elaboratori

1-Rappresentazione dell informazione

Calcolatori Elettronici Parte III: Sistemi di Numerazione Binaria

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

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

Rappresentazione dell informazione

Sistemi di numerazione posizionali

Codifica dell informazione

modificato da andynaz Cambiamenti di base Tecniche Informatiche di Base

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

Codifica dell Informazione per il Calcolo Scientifico

La codifica binaria. Fondamenti di Informatica. Daniele Loiacono

Rappresentazione dell Informazione

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

Rappresentazione numeri reali

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

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

Informatica per le discipline umanistiche 2

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

Codifica dell informazione

La codifica binaria. Informatica B. Daniele Loiacono

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

Architettura degli Elaboratori e Laboratorio. Matteo Manzali Università degli Studi di Ferrara Anno Accademico

Informatica di Base - 6 c.f.u.

Rappresentazione dell informazione

DIPARTIMENTO DI MATEMATICA E INFORMATICA SISTEMI OPERATIVI. Anno Accademico 2017/2018. Docente: ing. Salvatore Sorce

Somma di numeri binari

CODIFICA DELLE INFORMAZIONI. Prof. Marco Camurri

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

La codifica binaria. Fondamenti di Informatica. Daniele Loiacono

Rappresentazione dell informazione

Numeri frazionari nel sistema binario

Rappresentazione dell Informazione

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

Rappresentazione dei numeri reali in un calcolatore

Codifica di informazioni numeriche

Esercitazione del 05/03/ Soluzioni

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

Rappresentazione dei Dati

Rappresentazione binaria

Esercitazione del 09/03/ Soluzioni

Esercitazione 1 del 10/10/2012

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

Rappresentazione binaria

Informatica e Laboratorio di Programmazione Sistema Binario Alberto Ferrari. Alberto Ferrari Informatica e Laboratorio di Programmazione

Esercitazione 1 del 9/10/2013

Pag. 1. La Rappresentazione e la Codifica delle informazioni (parte 2) Tipi di dati. Informatica Facoltà di Medicina Veterinaria

Esercitazione 1 del 07/10/2011

Rappresentazione informazione ed elementi di aritmetica dei computer

La Rappresentazione dell Informazione

Introduzione. Introduzione

Sistemi di Numerazione Binaria

Rappresentazione dell informazione

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

Sistemi di Numerazione Binaria

Calcolatori: Rappresentazione dei Dati e Aritmetica binaria

Sistemi di Elaborazione delle Informazioni 6 CFU

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

Informatica Generale 02 - Rappresentazione numeri razionali

I.4 Rappresentazione dell informazione

Rappresentazione dell informazione

Aritmetica dei Calcolatori

Rappresentazione dell' informazione. Cenni, necessari per capire le caratteristiche dei tipi di dato e delle limitazioni dell'aritmetica del computer

Rappresentazione e Codifica dell Informazione

Codifica. Rappresentazione di numeri in memoria

Transcript:

Architetture dei calcolatori e delle reti Lezione 2 Rappresentazione dell informazione A. Borghese, F. Pedersini Dip. Scienze dell Informazione Università degli Studi di Milano L 2 1/32 Alcune unità di misura! Hertz - numero di ciclo al secondo nei moti periodici! MIPS - Milioni di istruzioni per secondo " (Mega Instructions Per Second)! MFLOPS - Milioni di istruzioni in virgola mobile " (Mega FLOating-point Instructions Per Second) Prefissi: k Chilo (mille: 10 3 ) m milli (millesimo: 10-3 ) M Mega (milione: 10 6 )! micro (milionesimo: 10-6 ) G Giga (miliardo: 10 9 ) n nano (miliardesimo: 10-9 ) T Tera (bilione: 10 12 ) p pico (bilionesimo: 10-12 ) E Exa (biliardo: 10 15 ) L 2 2/32

Terminologia! bit = binary digit.! 1 byte (B) = 8 bit! 1 kilobyte (kb) = 2 10 B = 1024! 1 Megabyte (MB) = 2 20 B = 1024 kb = 1,048,576 bytes! 1 Gigabyte (GB) = 2 30 B = 1024 MB = 1,073,741,824 bytes! 1 Terabyte (TB) = 2 40 B = 1024 GB = 1,099,511,627,776 bytes! 1 Exabyte (EB) = 2 50 B = 1024 TB = 1,125,899,906,842,624 bytes Multipli ingegneristici:! 1 kib = 10 3 byte = 1000 B! 1 MiB = 10 6 byte = 1000 kb! 1 GiB = 10 9 byte = 1000 MB! 1 TiB = 10 12 byte = 1000 GB! Parola (word) numero di bit trattati come unicum dall elaboratore " 8 bit (8080, Z80) " 16 bit (80286), " 32 bit (386, Pentium), " 64 bit (Intel Itanium, IBM PowerPC G5, AMD Athlon64) " 128 bit (Sony Playstation II) L 2 3/32 Rappresentazione dell informazione DEFINIZIONE: Rappresentazione di informazioni tramite parole composte da un alfabeto di simboli: " Esempio: A Z, 0 9, 0/1, " I simboli degli alfabeti possono assumere diverse forme. segni su carta, livelli di tensione, fori su carta, segnali di fumo " Diversi alfabeti possono essere usati per rappresentare la stessa informazione " ALFABETO: Insieme dei simboli della rappresentazione L 2 4/32

Numerazione! Se la rappresentazione è fatta con un alfabeto di numeri, si parla di numerazione " N. di elementi dell alfabeto = BASE! Numerazione araba DECIMALE " S = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} Base: 10! Numerazione ESADECIMALE " S = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} Base: 16! Numerazione BINARIA: " S = {0, 1} Base: 2! Numerazione OTTALE: " S = {0, 7} Base: 8 L 2 5/32 Il codice ASCII American Standard Code for Information Interchange Rappresentazione di informazione alfanumerica con cifre binarie 8 bit/carattere " 0-31 codici di controllo " 32-127 caratteri standard " 128-255 extended ASCII L 2 6/32

Capacità di codifica! Quanti oggetti diversi (quanta informazione) riesco a rappresentare con una parola?! Con una parola di 1 bit rappresentiamo 2 oggetti " 1 bit ha due possibili valori! Quanti oggetti riescono a rappresentare con parole di k bit? " (2 x 2 x 2 x 2) = 2 k oggetti! Con la codifica decimale: " Quanti oggetti resco a rappresentare con k cifre decimali? " (10 x 10 x 10 x 10) = 10 k oggetti In generale: base K oggetti L 2 7/32 Codifica di caratteri alfanumerici! Quanti bit devono avere le parole binarie usate per identificare 21 oggetti diversi (es: A,B,,Z)? 2 4 =16 < 21 < 32=2 5! 5 bit! Quanti bit devono avere le parole binarie usate per identificare 21+21 oggetti diversi (A Z,a...z)? 2 5 =32 < 42 < 64=2 6! 6 bit! Quanti per N oggetti? # ceil(log 2 N) L 2 8/32

Numerazione posizionale! Sistema di conteggio " Sistema di numerazione mediante simboli " Numerazione romana: I, V, X, L, C, M " La cifra X ha sempre lo stesso valore! Sistema di numerazione posizionale " cifra + peso. " Il peso è la base elevata alla posizione della cifra. " La cifra 1 ha un valore diverso nelle due scritture: 100 1000 L 2 9/32 Codifica posizionale di un numero! Fondata sul concetto di base: B N = [b 0, b 1, b 2, b 3, ]! Ciasun elemento (numero) E, può essere rappresentato come combinazione lineare degli elementi della base:! Gli elementi della base sono i PESI delle cifre, in funzione: " della loro posizione i, " dell ordine della base, n! Basi di numerazione: " B 2 = { 16, 8, 4, 2, 1,!, ", } " B 10 = { 1000, 100, 10, 1, 0.1, 0.01, } " B 16 = { 4096, 256, 16, 1, 1/16, 1/256, } " Esempi: 12 10 = 1!10 1 + 2!10 0 100 2 = 1!2 2 + 0!2 1 + 0!2 0 = 4 10 $ k E : c k c k"1 L c 0 E = c k # b k " b k = n k L 2 10/32

Spelling di un numero! Vogliamo rappresentare 1492 10 " 1492 = 1x1000 + 4x100 + 9x10 + 2x1 " 1492 = (10 x 149) + 2 $ cifra meno significativa " 149 = (10 x 14) + 9 " 14 = (10 x 1) + 4 " 1 = (10 x 0) + 1 $ cifra più significativa L 2 11/32 Conversione: base 10! base n! Un numero x in base 10 si trasforma in base n usando il seguente procedimento: " Dividere il numero x per n " Il resto della divisione è la cifra di posto 0 in base n " Il quoziente della divisione è a sua volta diviso per n " Il resto ottenuto è la cifra di posto 1 in base n " Si prosegue con le divisioni dei quozienti ottenuti al passo precedente fino a che l ultimo quoziente è 0. " l ultimo resto è la cifra più significativa in base n L 2 12/32

Conversione base 10! base 2 Vogliamo rappresentare 1492 dieci in binario: 101 1101 0100 due 1492= 2 x 746 + 0 $ Bit meno significativo 746 = 2 x 373 + 0 373 = 2 x 186 + 1 186 = 2 x 93 + 0 93 = 2 x 46 + 1 46 = 2 x 23 + 0 23 = 2 x 11 + 1 11 = 2 x 5 + 1 5 = 2 x 2 + 1 2 = 2 x 1 + 0 1 = 2 x 0 + 1 $ Bit più significativo L 2 13/32 Conversione: base n! base 10 Un numero: E =<c 1 c 2 c 3...>! a k cifre! in base n: b i = n i si trasforma in base 10, facendo riferimento alla formula: k#1 E = $ c i " b i = $ c i " n i, n =10 i= 0 k#1 i= 0 101 1101 0100 2 = 1x2 10 + 0x2 9 + 1x2 8 + 1x2 7 + 1x2 6 + 0x2 5 + 1x2 4 + 0x2 3 + 1x2 2 + 0x2 1 + 0x2 0 = 1024 + 256 + 128 + 64 + 16 + 4 = 1492 10 L 2 14/32

Esercizi! Dati i numeri decimali 23456, 89765, 67489, 121331, 2453, 111010101 " si trasformino in base 3 " si trasformino in base 7 " si trasformino in base 2! Dati i numeri: 23456 7, 121331 5, 2453 8, 111010101 2 convertire ciascuno in decimale e in binario L 2 15/32 Codifica esadecimale! Il codice esadecimale viene utilizzato come forma compatta per rappresentare numeri binari " 16 simboli:! "# "$ "% "& "' "( ") "* "+ ",,-"."/"0"1"2 Valore decimale: 0 15 " 16 = 2 4 # 1 cifra esadecimale = 4 bit! Diverse notazioni equivalenti: " 9F 16 " 0x9F " 9Fhex! 3+ 2,4,+!# ( #,5,# '!# (!,4,# & &,5,# ',4,# ' + #! L 2 16/32

Conversione: esadecimale! binario! Vogliamo rappresentare 9F hex in binario. " E più semplice della conv. decimale! Ogni cifra esadecimale viene convertita in un numero binario di 4 cifre: " 9 hex # 1001 2 " F hex # 1111 2 " 9F hex # 1001 1111 2! È sufficiente ricordarsi come si rappresentano in binario i numeri decimali da 0 a 15 (o derivarli) L 2 17/32 Conversione binario! esadecimale! Ogni gruppo di 4 cifre viene tradotto nel simbolo corrispondente! Esempio: convertire 1101011 due in esadecimale: " 1011 due # Bhex " 0110 due # 6hex (viene aggiunto un leading 0) " 1101011 due # 6Bhex 0 1 2 3 4 5 6 7 0000 0001 0010 0011 0100 0101 0110 0111 8 9 A/10 B/11 C/12 D/13 E/14 F/15 1000 1001 1010 1011 1100 1101 1110 1111 L 2 18/32

Numeri negativi! Codifica con bit di segno: il primo bit indica il segno, il resto il numero in modulo. " Scomodo per le operazioni " doppia codifica per lo 0! Codifica in complemento a 1: il numero negativo si ottiene cambiando 0 con 1 e viceversa. " Doppia codifica per lo 0! Codifica in complemento a 2: il numero negativo si ottiene cambiando 0 con 1 e sommando 1. " Comodo per le operazioni (+/ ) " La prima cifra è il bit di segno Bit di segno Compl. a 1 Compl. a 2 dec bin dec bin dec bin 0 00 0 00 0 00 +1 01 +1 01 +1 01 0 10 1 10 2 10 1 11 0 11 1 11 L 2 19/32 Operazioni tra numeri binari interi: somma! SOMMA " Come le somme decimali fatte a mano, a scuola (2^ elementare) 111 $ Riporti 1011 + 11 10 110 = 6 10 ------------ 10001 17 10 L 2 20/32

Sottrazione fra interi! Sfruttando i numeri negativi, gestisco la sottrazione come una somma: 11 13 = 11 + ( 13)! Utilizzo la rappresentazione: complemento a 2 +11 10 # 01011 2 13 10 # 10011 2! Vantaggio della rappr. a complemento a 2 11 $ riporti 01011 + 10011 = ----------- 11110 # -2 10 L 2 21/32 Moltiplicazione di interi Come le moltiplicazioni decimali fatte a mano (3^ elementare) 27 10 1 1 0 1 1 x 7 10 1 1 1 = ---------------------- 1 1 1 1 1 1 1 1 0 1 1 + 1 1 0 1 1-1 1 0 1 1 - - ---------------------- 1 0 1 1 1 1 0 1 189 10 L 2 22/32

Capacità di rappresentazione interi Numeri Interi: N bit # 2 N valori rappresentabili! Interi unsigned (senza segno) Da 0 (00 0) a 2 N 1 (111 1)! Interi signed Da 2 N-1 (111 1) a 2 N-1 1 (011 1) " Rappr. Complemento a 2 Es: MS Visual C++: Intero è su 4 byte (word di 32 bit): signed int: -2.147.483.650! c! 2.147.483.649 L 2 23/32 Moltiplicazione/divisione mediante shift! Lo shift di un numero a destra, di k cifre, corrisponde ad una divisione per la base elevata alla k-esima potenza! Lo shift di un numero a sinistra, di k cifre, corrisponde ad una moltiplicazione per la base elev. alla k-esima potenza 213 10 / 10 = 21.3 10 213 10 / 10 = (2 10 2 + 1 10 1 + 3 10 0 ) / 10 = (2 10 2 + 1 10 1 + 3 10 0 ) 10 1 = (2 10 1 + 1 10 0 + 3 10 1 ) = 21.3 c.v.d. In binario: 23 10 = 10111 2 % 101,11 2 = 23 10 / 2 2 = 5, 75 verifica: 101.11 2 = 1 2 2 + 0 2 1 + 1 2 0 + 1 2 1 + 1 2 2 = 5,75 10 c.v.d. L 2 24/32

Conversione base10! base n parte frazionaria Algoritmo per la parte frazionaria! Un numero x,y in base 10 si trasforma in base n usando il seguente procedimento:! Per la parte frazionaria y: " Moltiplicare il numero y per n " La prima cifra del risultato coincide con la prima cifra dopo la virgola. " Si elimina la parte intera e si considera la nuova parte frazionaria. " La parte frazionaria ottenuta viene moltiplicata per la base n. " La prima cifra del risultato è la seconda cifra dopo la virgola. " Si prosegue con le moltiplicazioni della parte frazionaria fino a quando: Il resto diventa 0 si esaurisce la capacità di rappresentazione. L 2 25/32 Conversione dei numeri decimali Esempio: 10,75 10 = 1010,11 2 Esempio: 10,76 10 = 1010,1100001... 2 10 : 2 = 5, 0 5 : 2 = 2, 1 2 : 2 = 1, 0 1 : 2 = 0, 1 # 1010, (parte intera) 0,75 x 2 = 1.5 #1 0,5 x 2 = 1.0 #1 ",11 (parte frazionaria) 0,76 x 2 = 1.52 #1 0,52 x 2 = 1.04 #1 0.04 x 2 = 0.08 #0 0.08 x 2 = 0.16 #0 0.16 x 2 = 0.32 #0 0.32 x 2 = 0.64 #0 0.64 x 2 = 1.28 #1 0.28?! Errori di approssimazione: " arrotondamento e troncamento. ",1100001 errore= 0.28 x 2-8 L 2 26/32

Rappresentazione di numeri decimali! Numeri reali per il computer non sono i numeri reali per la matematica " Sono in numero finito " Generalmente chiamati float (numeri decimali)! Dato un certo numero di bit per codificare il numero float, esistono due tipi di codifiche possibili:! Rappresentazione a virgola fissa (fixed point) " La virgola è in posizione fissa all interno della stringa! Supponiamo di avere a disposizione 8 cifre: + 127,35 = + 1 2 7 3 5 0 0 187 = 1 8 7 0 0 0 0 + 0,14567 = + 0 0 0 1 4 5 6?? L 2 27/32 Rappresentazione floating point! Rappresentazione in virgola mobile (floating point) mantissa + esponente! Esempio: " 127,35 = 12,735 x 10 1 = 1,2735 x 10 2 = 0,12735 x 10 3 rappresentazione normalizzata " " E possibile rappresentare numeri grandi che piccoli! Supponiamo di avere a disposizione 8 cifre: 6 cifre per la mantissa, 2 per l esponente: + 127,35 = + 1 2 7 3 5 + 3 187 = 1 8 7 0 0 + 3 + 0,14567 = + 1 4 5 6 7 + 0 L 2 28/32

Lo standard: IEEE-754 (1980)! Solo la parte frazionaria della mantissa " formato: 1,xxxxxxxx...! Rappresentazione polarizzata dell esponente: " 127 per singola precisione " 1 viene codificato come: 1000 0000. " 1023 in doppia precisione " 1 viene codificato come: 100 0000 0000. L 2 29/32 Codifica standard IEEE-754 Single-precision: Sign Esempio: N = -10,75 10 = -1010,11 2! Normalizzazione: ±1,xxxxxx 1,01011 x 2 3! Codifica del segno: 1 = ; 0 = +! Calcolo dell esponente in rappresentazione polarizzata: 10.75 10 = e = 3 + 127 = 130 10 = 10000010 2 1 8 23 = 1 1000 0010 01011000 00000000 0000000 L 2 30/32

IEEE 754: Configurazioni notevoli Numero 0 " NaN N. denormalizzato Mantissa = 0 = 0 " 0 " 0 Esponente 0000 0000 1111 1111 1111 1111 0000 0000 Range esponenti: 1 254 " 126! e! +127 Range float (32 bit): 1,00 0! 2 126! x! 1,11 1! 2 +127 1.175 10 38! x! 3.4028 10 +38 L 2 31/32 IEEE-754: numeri denormalizzati MIN_float: 1,00 00! 2 126 = 1.175! 10 38 Float successivo: 1,00 01! 2 126 = MIN_float + 2 126 23 # Risoluzione float: 2 126 23 = 2 149 = 1.41298! 10 45 Discontinuità tra ZERO e MIN_float!! Soluzione: numeri denormalizzati Non si procede alla normalizzazione: Esponente: 00 0 (come se fosse: 126) Mantissa: m 1 m 23 # 0,m 1 m 23! 2 126 # MIN_denorm: 0.00 01! 2 126 = 2 149 = 1.41298! 10 45 L 2 32/32