La codifica. dell informazione

Documenti analoghi
La codifica. dell informazione

Codifica binaria dell informazione

04 Aritmetica del calcolatore

Codifica binaria. Rappresentazioni medianti basi diverse

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

Rappresentazione dei Dati

Codifica di informazioni numeriche

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

Sistemi di Numerazione Binaria

Sistemi di Numerazione Binaria

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

Rappresentazione e Codifica dell Informazione

Esercitazione del 09/03/ Soluzioni

Un ripasso di aritmetica: Conversione dalla base 10 alla base 2

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

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

Sistemi di Numerazione Binaria

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

Il sistema di numerazione posizionale decimale

Aritmetica dei Calcolatori Elettronici

Codifica. Rappresentazione di numeri in memoria

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

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

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

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

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

Lezione 3. I numeri relativi

La codifica digitale

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

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

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

Somma di numeri binari

Sistemi di Numerazione

Aritmetica dei Calcolatori

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

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

La codifica dell informazione

Aritmetica dei Calcolatori

Codifica dell informazione

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

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

ESERCITAZIONE. Uso dell accessorio calcolatrice per

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

Laboratorio di Informatica

Rappresentazione dell Informazione

Calcolatori Elettronici Parte III: Sistemi di Numerazione Binaria

La codifica binaria. Informatica B. Daniele Loiacono

La codifica binaria. Fondamenti di Informatica. Daniele Loiacono

Laboratorio del 21/10/2010- Numeri binari e conversione

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

Fondamenti di Programmazione. Sistemi di rappresentazione

Architettura degli Elaboratori

I.4 Rappresentazione dell informazione

SISTEMI DI NUMERAZIONE

La codifica binaria. Sommario

Elementi di Informatica e Programmazione

Algebra di Boole e porte logiche

Rappresentazione dei Numeri

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

Rappresentazione numeri relativi e reali

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

Rappresentazione dell informazione

Informatica. Informatica. Grandezze digitali. Grandezze analogiche

I.4 Rappresentazione dell informazione - Numeri con segno

Unità aritmetica e logica

Codifica dell informazione

Introduzione e Nozioni di Base. Prof. Thomas Casali

Corso di Sistemi di Elaborazione delle informazioni

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

Interi positivi e negativi

Rappresentazione dei dati in memoria

La codifica binaria. Informatica B. Daniele Loiacono

Informatica. Mario Pavone - Dept. Mathematics & Computer Science - University of Catania. Trasferimento. Ambiente esterno.

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

Un ripasso di aritmetica: Conversione dalla base 10 alla base 2

Rappresentazione in complemento a 2: caratteristiche generali

La Rappresentazione dell Informazione

Esercitazione Informatica I (Parte 1) AA Nicola Paoletti

modificato da andynaz Cambiamenti di base Tecniche Informatiche di Base

Abilità Informatiche e Telematiche

Decimale, binaria,esadecimale

Fondamenti di Programmazione. Sistemi di rappresentazione

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

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

Lezione 2. La conoscenza del mondo

Rappresentazione informazione ed elementi di aritmetica dei computer

Informatica di Base - 6 c.f.u.

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

Lezione 2. Rappresentazione dell informazione

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

APPUNTI DI INFORMATICA

Elementi di informatica

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

Rappresentazione dell informazione

Calcolo numerico e programmazione Rappresentazione dei numeri

1.2f: Operazioni Binarie

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

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

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

Transcript:

00010010101001110101010100010110101000011100010111 00010010101001110101010100010110101000011100010111 La codifica 00010010101001110101010100010110101000011100010111 dell informazione 00010010101001110101010100010110101000011100010111 00010010101001110101010100010110101000011100010111 (continua) Codifica dei numeri Il codice ASCII consente di codificare le cifre decimali da 0 a 9 fornendo in questo modo un metodo per la rappresentazione dei numeri Il numero 324 potrebbe essere rappresentato dalla sequenza di byte: 00110011 00110010 00110100 3 2 4 Questa rappresentazione non è efficiente e, soprattutto, non è adatta per eseguire le operazioni aritmetiche sui numeri

Codifica dei numeri Sono stati pertanto studiati codici alternativi per rappresentare i numeri in modo efficiente eseguire le usuali operazioni Codifica dei numeri: il sistema decimale Sistema posizionale in cui ogni cifra di un numero assume un valore che dipende dalla sua posizione 365 = 3 x 100 + 6 x 10 + 5 x 1 365 = 3 x 10 2 + 6 x 10 1 + 5 x 10 0 Si deve fare la somma dei prodotti di ciascuna cifra moltiplicata per la base elevata all esponente che rappresenta la posizione della cifra stessa (partendo da 0)

Codifica dei numeri La notazione posizionale può essere usata con qualunque base creando così sistemi di numerazione diversi Per ogni sistema di numerazione si usa un numero di cifre uguale alla base Esempi 1. Nella base 10 si usano le cifre 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 2. In base 5 si usano le cifre 0, 1, 2, 3, 4 3. In base 3 si usano le cifre 0, 1, 2 Codifica dei numeri In informatica si usano prevalentemente le numerazioni binaria (base 2), ottale (base 8) ed esadecimale (base 16)

Sistema binario Utilizza una notazione posizionale basata su 2 cifre (0 e 1) e sulle potenze di 2 Esempio: 10011 = 1 x 2 4 + 0 x 2 3 + 0 x 2 2 + 1 x 2 1 + 1 x 2 0 = 1 9 Esempio: 20011 =???? Sistema ottale Utilizza una notazione posizionale basata su 8 cifre (0,1,, 7 ) e sulle potenze di 8 Esempio: 10011 = 1 x 8 4 + 0 x 8 3 + 0 x 8 2 + 1 x 8 1 + 1 x 8 0 = 4105 Esempio: 3057 = 3 x 8 3 + 0 x 8 2 + 5 x 8 1 + 7 x 8 0 = 1583

Sistema esadecimale Utilizza una notazione posizionale basata su 16 cifre (0,1,2,,9,A,B,C,D,E,F) e sulle potenze di 16 Esempio: 10011 = 1 x 16 4 + 0 x 16 3 + 0 x 16 2 + 1 x 16 1 + 1 x 16 0 = 65553 Esempio: AAC3 = 10 x16 3 + 10 x 16 2 + 12 x 16 1 + 3 x 16 0 = 43715 Sistemi di numerazione Per evitare ambiguità si può scrivere esplicitamente la base di un numero Avremo 100112 < 100118 < 1001110 < 1001116

Conversione da base 10 a base 2 Per convertire un numero M in base 2 si devono trovare i resti delle divisioni per due di M e dei quozienti successivi Esempio: 21010 210 2 resto 0 105 2 resto 1 52 2 resto 0 26 2 resto 0 13 2 resto 1 6 2 resto 0 3 2 resto 1 1 2 resto 1 0 Conversione da base 10 a base 2 Leggendo la sequenza dal basso verso l alto si ottiene il numero 110100102 Per una corretta verifica basta riconvertire il risultato alla base 10 Per le altre basi il procedimento è lo stesso, cambiando il divisore

Conversione da base 10 a base 8 Per convertire un numero in base 8 si devono trovare i resti delle divisioni successive del numero per la base 8 Esempio: 74110 741 8 resto 5 92 8 resto 4 11 8 resto 3 1 8 resto 1 0 = 13458 Conversione da base 10 a base 16 Per convertire un numero in base 16 si devono trovare i resti delle divisioni successive del numero per la base 16 Esempio: 4166010 41660 16 resto 12 = C 2603 16 resto 11 = B 162 16 resto = 2 10 16 resto 10 = A 0 = A2BC16

Conversione da base 2 a base 8 e base 16 È semplice! Da base 2 a base 8: basta prendere i bit a gruppi di 3 e trovare il numero ottale corrispondente (che sarà compreso tra 0 e 7) Da base 2 a base 16: basta prendere i bit a gruppi di 4 e trovare il numero esadecimale corrispondente, (che sarà compreso tra 0 e F) Rappresentazione dei numeri I numeri vengono distinti in tre categorie Interi positivi Interi con segno (positivi e negativi) Reali (positivi e negativi con virgola) Ogni categoria viene rappresentata in modo diverso NB: indipendentemente dalla rappresentazione scelta, essa sarà di tipo finito e consentirà di rappresentare solo un sottoinsieme finito di numeri!

Codici a lunghezza fissa Se si usa un numero prestabilito di cifre si ha un codice a lunghezza fissa In questo modo si pone anche un limite al numero massimo rappresentabile Esempio: qual è il numero più grande rappresentabile con 4 cifre? in base 10 9999 in base 2 1111 (= 1510) in base 16 FFFF (= 6553510) in base 8 7777 (= 409510) Codici a lunghezza fissa Numeri maggiori di quello massimo rappresentabile causano problemi di overflow (ovvero per essere rappresentati richiedono più cifre di quelle a disposizione) Esempio: 4 cifre in base 10 9999 + 1 = 1000010 in base 2 1111 + 1 = 100002 (= 1610) In base 16 FFFF + 1 = 1000016 (= 6553610) in base 8 7777 + 1 = 100008 (= 409610)

Numeri interi positivi In generale, con N cifre a disposizione e base b il più grande numero (intero positivo) rappresentabile si può esprimere come b N - 1 Esempio: N=4 in base 10 9999 = 10 4-1 in base 2 1111 = 2 4-1 in base 16 FFFF = 16 4-1 in base 8 7777 = 8 4-1 Operazioni Vediamo solo il caso della addizione nella codifica binaria si mettono in colonna i numeri da sommare si calcola il riporto ogni volta che la somma parziale supera il valore 1 0 + 0 = 0 con riporto 0 0 + 1 = 1 con riporto 0 1 + 0 = 1 con riporto 0 1 + 1 = 0 con riporto 1

Codici a lunghezza variabile Possiamo rappresentare i numeri usando un numero variabile di cifre (che dipende dal valore che si vuole rappresentare) introducendo un simbolo speciale che indica dove termina la rappresentazione di un numero e inizia quella del numero successivo Esempio 1001#11#1 codice a lungh. variabile, # separatore 100100110001 codice a lungh. fissa, 4 bit per pixel Codici a espansione Permettono di definire dei codici a lunghezza variabile senza far uso del carattere di separazione Si stabiliscono dei formati di rappresentazione che fanno uso di un numero diverso di cifre Si definiscono delle regole per distinguere tra i vari formati

Codici a formati multipli predefiniti 4 formati di rappresentazione a 4, 7, 10, 16 bit identificati da 00, 01, 10, 11 0 0000 36 1000000000 1 0001 37 1000000001 2 0010 38 1000000010 3 0011 39 1000000011 4 0100000 5 0100001 291 1011111111 6 0100010 292 1100000000000000 7 0100011 293 1100000000000001 8 0100100 294 1100000000000010 16674 1101111111111111 35 0111111 16675 1111111111111111 Codici a espansione con cifra di espansione 4 formati di rappresentazione a 4, 7, 10, 16 bit identificati da 0, 10, 110, 111 0 0000 40 1100000000 1 0001 41 1100000001 2 0010 42 1100000010 3 0011 167 1101111111 7 0111 168 1110000000000000 8 1000000 169 1110000000000001 9 1000001 170 1110000000000010 10 1000010 11 1000011 8358 1110111111111111 39 1011111 8359 1111111111111111

Numeri interi con segno 2 2 [-2 + 1, 2-1] -3-2 -1 0 1 2 3 4 5 6 7 3 [0, 2-1] N=3, codice a lungh. fissa Numeri interi con segno Si può pensare di usare un bit per il segno 0 identifica + 1 identifica - Gli altri bit vengono usati per codificare il valore assoluto (modulo) del numero

Numeri interi con segno Problemi Il numero 0 ha due rappresentazioni (-0 = 100 0 e +0 = 000 0) Per l operazione di somma si deve tener conto dei segni degli addendi Sono state pertanto introdotte altre tecniche di codifica Complemento a 1 Complemento a 2 Complemento a 1 La cifra più a sinistra indica il segno Per i numeri positivi (cifra più a sinistra 0 ) si codifica il valore assoluto del numero Per i numeri negativi (cifra più a sinistra 1 ) si devono negare tutte le cifre (dove c è 1 mettere 0, dove c è 0 mettere 1 ) Esempi N=8, +24 = 00011000, -24 = 11100111 Per trasfomare 10011111 si devono complementare i suoi bit e trovare il valore corrispondente a 1100000, ovvero 96. Il numero cercato è -96 NB: ci vuole un codice a lunghezza fissa, altrimeni il complemento a 1 non funziona!

Complemento a 1 L operazione di somma funziona nel caso di addendi positivi e addendi con segno opposto con risultato negativo Negli altri casi (somma tra numeri negativi oppure somma tra addendi discordanti e con risultato positivo) il risultato è decrementato di 1 Per risolvere questo problema è stata introdotta una nuova codifica: complemento a 2 Numeri positivi e negativi Un byte consente 2 8 =256 configurazioni diverse. Anziché usarle per rappresentare i numeri da 0 a 255, si possono usare per i numeri da -128 a 127 Rappresentazione in COMPLEMENTO A DUE da 00000000 2 = 0 10 da 10000000 2 = -128 10 a 01111111 2 = 127 10 a 11111111 2 = -1 10 il primo bit identifica il segno (0: +; 1: -) il valore assoluto dei numeri negativi si può ottenere invertendo i bit e sommando 1 (oppure convertendo e sottraendo 256 10 )

Numeri positivi e negativi Quindi: convertire in base 10 se numero negativo, sottrarre 2 N (N = numero di bit) OPPURE invertire i bit 0 1, 1 0 convertire in base 10, sommare 1, cambiare segno Esempio 01001101 2 = 77 10 10001010 2 = 138 10-256 10 = -118 10 10001010 2 = 01110101 2 = 117 10 + 1 10 = 118 10 = -118 10 NUMERI A VIRGOLA MOBILE (NUMERI FLOATING POINT) Idea: 12,52 = 1252/100 = 1252 * 10-2 Un numero decimale è rappresentato come un intero moltiplicato per una opportuna potenza di 10, cioè con una coppia: <1252; -2> mantissa esponente

NUMERI FLOATING POINT È necessario stabilire quanti bit assegnare alla mantissa e all esponente. Ad esempio, con 16 bit a disposizione possiamo usarne 12 per la mantissa e 4 per l esponente (in realtà dovremmo anche tener conto dei segni) NUMERI FLOATING POINT Con lo stesso metodo possiamo rappresentare numeri molto grandi. Ad esempio, con 8 bit: 5 bit di mantissa: 11111 2 = 31 10 3 bit di esponente: 111 2 = 7 10 11111;111 = 31 * 10 7 = 310 milioni Mentre, con la notazione intera, con 8 bit rappresentiamo al massimo il numero 255 10

NUMERI FLOATING POINT Ma allora, perchè non usare sempre la notazione floating point? Perchè si perde in precisione Esempio: 5 cifre (decimali) : 4 per la mantissa, 1 per l esponente. Rappresentare 312,45 <3124; -1> = [312,4.. 312,5]??? NUMERI FLOATING POINT Quindi: possiamo rappresentare numeri molto grandi o con molti decimali al costo di una perdita di precisione Perchè? Perchè i computer permettono solo rappresentazioni finite, e così dobbiamo approssimare alcuni numeri (ad esempio gli irrazionali), ma anche immagini e suoni

00010010101001110101010100010110101000011100010111 00010010101001110101010100010110101000011100010111 00010010101001110101010100010110101000011100010111 00010010101001110101010100010110101000011100010111 00010010101001110101010100010110101000011100010111 La rappresentazione dell informazione indipendentemente dall informazione di partenza si ottiene sempre una sequenza di bit