corso di informaticacdamato/corsi/infchimmateriale/01-informazione.pdf · decodifica:...

42
L'informazione e la L'informazione e la sua codifica sua codifica Corso di Informatica Corso di Informatica CdL: CdL: Chimica Chimica Claudia d'Amato Claudia d'Amato [email protected] [email protected]

Upload: hoangkhanh

Post on 16-Feb-2019

214 views

Category:

Documents


0 download

TRANSCRIPT

L'informazione e la L'informazione e la sua codificasua codifica

Corso di InformaticaCorso di InformaticaCdL: CdL: ChimicaChimica

Claudia d'AmatoClaudia d'[email protected]@di.uniba.it

Informatica - Claudia d'Amato 2

Informatica e telecomunicazioneInformatica e telecomunicazione Cos’è l’Cos’è l’informaticainformatica??

• lo studio sistematico degli algoritmi che descrivono e trasformano l’informazione: la loro teoria, analisi, progetto, efficienza, realizzazione e applicazione[ACM – Association for Computing Machinery]

• la scienza della rappresentazione e dell’elaborazione la scienza della rappresentazione e dell’elaborazione dell’informazionedell’informazione

Cos’è la Cos’è la telecomunicazionetelecomunicazione??• la trasmissione rapidarapida a distanzadistanza dell’informazione

Attenzione:Attenzione:• NonNon si parla di tecnologia dei calcolatoricalcolatori !• Si attribuisce ruolo centrale al concetto di informazioneinformazione !

Informatica - Claudia d'Amato 3

Informazione e supportoInformazione e supporto L’informazione è “L’informazione è “portata daportata da”, o “”, o “trasmessa trasmessa

susu”, o “”, o “memorizzata inmemorizzata in”, o “”, o “contenuta incontenuta in” ” qualcosa; questo “qualcosa; questo “qualcosaqualcosa” però non è ” però non è l’informazione stessa.l’informazione stessa.

Ogni supporto ha le sue caratteristiche in Ogni supporto ha le sue caratteristiche in quanto mezzo su cui può essere scritta quanto mezzo su cui può essere scritta dell’informazione.dell’informazione.

Informatica - Claudia d'Amato 4

Informazione e supporti /2Informazione e supporti /2

La stessa informazione può essere scritta La stessa informazione può essere scritta su su supporti differentisupporti differenti..

10109

11

8

67

Informatica - Claudia d'Amato 6

Informazione e supporto /4Informazione e supporto /4 Distinguere informazione e supporto fisico è Distinguere informazione e supporto fisico è

distinguere tra “distinguere tra “entità logicheentità logiche” ed “” ed “entità entità fisichefisiche”:”:• l’informazione richiede un supporto fisicorichiede un supporto fisico, ma

non coincide con esso;• l’informazione è un’entità extra‑fisicaextra‑fisica, non

interpretabile in termini di materia‑energia e sottoposta alle leggi della fisica solo perché basata su un supporto fisico.

L’informazione si può L’informazione si può crearecreare e e distruggeredistruggere..

Informatica - Claudia d'Amato 7

Caratteristiche di un sistema fisico per Caratteristiche di un sistema fisico per supportare informazionisupportare informazioni

CODIFICA:CODIFICA: l'operazione formalizzazione e l'operazione formalizzazione e scrittura dell'infomazione su supporto fisicoscrittura dell'infomazione su supporto fisico

DECODIFICA:DECODIFICA: l'operazione di interpretazione l'operazione di interpretazione e lettura dell'informazione da supporto fisicoe lettura dell'informazione da supporto fisico

Condizione necessariaCondizione necessaria perché un supporto perché un supporto possa portare informazione è che possa possa portare informazione è che possa assumereassumere configurazioni differenticonfigurazioni differenti, a ognuna , a ognuna delle quali venga associata una differentedelle quali venga associata una differente entità di informazioneentità di informazione..

Informatica - Claudia d'Amato 8

Supporto fisico: 1Supporto fisico: 1aa condizione condizione Deve consentire di Deve consentire di

potere identificare potere identificare delle differenzedelle differenze• Es: voglio rappresentare 2

alternative

Cosa Cosa rappresentarappresenta ciascuna ciascuna configurazione?configurazione?

Informatica - Claudia d'Amato 9

Configurazioni e codiciConfigurazioni e codici Per interpretare le differenti configurazioni del

supporto è necessario conoscere il codice (cioè la regola) che a ogni configurazione ammessa associa un’entità di informazione.

La definizione di un codice comporta che siano identificati in modo non ambiguo l’insieme delle possibili configurazioni del supporto e l’insieme delle possibili entità di informazione a cui ci si vuole riferire.

Variando il codice è possibile riferirsi a entità di informazione differenti utilizzando uno stesso supporto fisico.

Informatica - Claudia d'Amato 10

CODICE

Supporto fisico: 2a condizioneSupporto fisico: 2a condizioneDeve essere Deve essere condivisacondivisa una regola per una regola per attribuire un attribuire un significatosignificato a ciascuna a ciascuna

configurazioneconfigurazione

Configurazione 1

Entità di informazione 1

Configurazione 2

Entità di informazione 2

Informatica - Claudia d'Amato 11

Definire un codiceDefinire un codice Identificare Identificare

• { Configurazioni }• { Entità informazione }

Associare gli elementi Associare gli elementi dei 2 insiemidei 2 insiemi

Informatica - Claudia d'Amato 12

Il telegrafo...Il telegrafo... Supporto fisicoSupporto fisico: conduttore in cui transita corrente : conduttore in cui transita corrente

continuacontinua

Entità di informazioneEntità di informazione: “punti” e “linee”, che : “punti” e “linee”, che rappresentano le lettere dell’alfabetorappresentano le lettere dell’alfabeto

CodiceCodice = regola che specifica la corrispondenza: = regola che specifica la corrispondenza:• passa corrente per 1 s ⇒ punto• passa corrente per 2 s ⇒ linea• non passa corrente per 1 s ⇒ separazione tra punti e

linee della stessa lettera• non passa corrente per 2 s ⇒ separazione tra due

lettere

• ““passa corrente per 1 s, non passa per 1 s, passa per passa corrente per 1 s, non passa per 1 s, passa per 2 s” = “punto line2 s” = “punto linea”.a”.

Informatica - Claudia d'Amato 13

...Il telegrafo...Il telegrafo Codice MorseCodice Morse = relazione tra lettere e sequenze di = relazione tra lettere e sequenze di

punti linee:punti linee:• punto linea ⇒ lettera “A”• linea punto punto punto ⇒ lettera “B”• linea punto linea punto ⇒ lettera “C”• ecc.

Abbiamo associato simboli ad altri simboli!!Abbiamo associato simboli ad altri simboli!!

Informatica - Claudia d'Amato 14

Messaggi vs configurazioneMessaggi vs configurazione Configurazione del supporto fisicoConfigurazione del supporto fisico (livello fisico, (livello fisico, LFLF):):

• passa corrente per 2s, non passa per 1s, passa per 1s, non passa per 2s, passa per 2s, non passa per 1s, passa per 2s, non passa per 1s, passa per 2s

messaggiomessaggio, al livello logico 1 (, al livello logico 1 (LL1LL1):):• linea punto, separazione di lettera, linea linea linea

messaggiomessaggio, al livello Logico 2 (, al livello Logico 2 (LL2LL2):):• “N” “O”

messaggiomessaggio, al livello Logico 3 (, al livello Logico 3 (LL3LL3):):• “NO”, con il significato (per esempio) di “incontro non confermato”

Le relazioni tra questi livelli definiscono ognuna un codice Le relazioni tra questi livelli definiscono ognuna un codice per interpretare il significato delle entità che compaiono al per interpretare il significato delle entità che compaiono al livello precedente in termini delle entità del livello livello precedente in termini delle entità del livello successivo: sono relazioni di significazione.successivo: sono relazioni di significazione.

Informatica - Claudia d'Amato 15

Livelli di informazioneLivelli di informazione

Informazione Informazione sintatticasintattica• Rappresentazione in simboli dell'informazione

Informazione Informazione semanticasemantica• Determinazione del significato della informazione

rappresentata

Informazione Informazione pragmaticapragmatica• Determinazione del valore da attribuire

all'informazione, considerata la sua rappresentazione ed il suo significato

Informatica - Claudia d'Amato 17

La codifica dell’informazioneLa codifica dell’informazione

Informatica - Claudia d'Amato 18

Codifica dati e istruzioniCodifica dati e istruzioni AlgoritmoAlgoritmo

• descrizionedescrizione della soluzione di problemasoluzione di problema scritta in modo da poter essere eseguita da un esecutoreesecutore (eventualmente diverso dall’autore dell’algoritmo)

• sequenza di istruzioniistruzioni che operano su datidati. ProgrammaProgramma

• algoritmo algoritmo scritto in modo da poter essere eseguito da un calcolatorecalcolatore (esecutore automatico)

Per scrivere un Per scrivere un programmaprogramma è necessario è necessario rappresentare rappresentare istruzioniistruzioni e e datidati in un formato tale in un formato tale che che l’esecutore automaticol’esecutore automatico sia capace di sia capace di memorizzare memorizzare e e manipolaremanipolare..

Informatica - Claudia d'Amato 19

Rappresentare dati e istruzioni Rappresentare dati e istruzioni per il processing di un esecutore per il processing di un esecutore

automaticoautomatico Alfabeto dei simboliAlfabeto dei simboli

• cifre “0”, “1”, …, “9”, separatore decimale (“,”), separatore delle migliaia (“.”) e segni positivo (“+”) o negativo (“–”).

Regole di composizioneRegole di composizione (sintassi), che definiscono le (sintassi), che definiscono le successioni “ben formate”successioni “ben formate”• “1.234,5” è la rappresentazione di un numero;• “1,23,45” non lo è.

CodiceCodice (semantica)(semantica)• “1.234,5” = 1×103 + 2×102 + 3×101 + 4×100 + 5×10–1

• “1,23,45” = ??

Lo stesso alfabeto può essere utilizzato con codici diversi:Lo stesso alfabeto può essere utilizzato con codici diversi:• “123,456” = 1×102 + 2×101 + 3×100 + 4×10–1 + 5×10–2 + 6×10–3, [IT]• “123,456” = 1×105 + 2×104 + 3×103 + 4×102 + 5×101 + 6×100, [UK]

Informatica - Claudia d'Amato 20

Codifica BinariaCodifica Binaria Alfabeto binarioAlfabeto binario: usiamo dispositivi con solo due stati: usiamo dispositivi con solo due stati Problema: assegnare un Problema: assegnare un codice univococodice univoco a tutti gli oggetti a tutti gli oggetti

compresi in un insieme predefinito compresi in un insieme predefinito

Quanti Quanti oggettioggetti posso codificare con posso codificare con kk bit: bit:• 1 bit ⇒ 2 stati (0, 1) ⇒ 2 oggetti (e.g. Vero/Falso)• 2 bit ⇒ 4 stati (00, 01, 10, 11) ⇒ 4 oggetti• 3 bit ⇒ 8 stati (000, 001, …, 111) ⇒ 8 oggetti• …• k bit k bit ⇒⇒ 2 2kk stati stati ⇒⇒ 2 2kk oggetti oggetti

Quanti Quanti bitbit mi servono per codificare mi servono per codificare NN oggetti: oggetti:• N ≤ 2k ⇒ k ≥ log2N ⇒ k = k = loglog22NN (intero superiore)

Attenzione:Attenzione:ipotesi implicita che i codici abbiano tutti la ipotesi implicita che i codici abbiano tutti la stessa lunghezzastessa lunghezza

Informatica - Claudia d'Amato 21

Esempio di codifica binariaEsempio di codifica binaria Problema:Problema:

assegnare un codice binario univoco a tutti i giorni della assegnare un codice binario univoco a tutti i giorni della settimanasettimana

Giorni della settimana: N = 7 Giorni della settimana: N = 7 ⇒⇒ k ≥ log k ≥ log227 7 ⇒⇒ k = 3 k = 3

Con 3 bit possiamo ottenere 8 diverse configurazioni:Con 3 bit possiamo ottenere 8 diverse configurazioni:• Ne servono 7, quali utilizziamo?• Quale configurazione associamo a quale giorno?

Attenzione:Attenzione:ipotesi che i codici abbiano tutti la stessa lunghezzaipotesi che i codici abbiano tutti la stessa lunghezza

Informatica - Claudia d'Amato 22

I giorni della settimana in binario /1I giorni della settimana in binario /1

1 bit2 “gruppi”

2 bit4 “gruppi”

3 bit8 “gruppi”

Lunedì

Martedì

Mercoledì

Giovedì

Venerdì

Sabato

Domenica

000 001 010 011 100 101

111 110

Lunedì Martedì

Mercoledì Giovedì

Venerdì Sabato

Domenica

00

01

10

11

Lunedì

Martedì Mercoledì

Giovedì

Venerdì

Sabato

Domenica

0

1

Lunedì

Martedì

Mercoledì

Giovedì

Venerdì

Sabato

Domenica

Informatica - Claudia d'Amato 23

I giorni della settimana in binario /2I giorni della settimana in binario /2

1 bit2 “gruppi”

2 bit4 “gruppi”

3 bit8 “gruppi”

Lunedì

Martedì

Mercoledì

Giovedì

Venerdì

Sabato

Domenica

000 001 010 011 100 101

111 110 Lunedì

Martedì

Mercoledì

Giovedì

Venerdì

Sabato

Domenica

00

01

10

11

Lunedì

Martedì

Mercoledì

Giovedì

Venerdì

Sabato

Domenica

0

1

Lunedì

Martedì

Mercoledì

Giovedì

Venerdì

Sabato

Domenica

Informatica - Claudia d'Amato 24

Codifica binaria dei caratteriCodifica binaria dei caratteri Quanti sono gli oggetti compresi nell’insieme?Quanti sono gli oggetti compresi nell’insieme?

• 26 lettere maiuscole + 26 minuscole ⇒ 52• 10 cifre• Circa 30 segni d’interpunzione• Circa 30 caratteri di controllo (EOF, CR, LF, …)

circa 120 oggetti complessivi circa 120 oggetti complessivi ⇒⇒ k = k = loglog22120120 = 7 = 7

Codice ASCII: utilizza 7 bit e quindi può Codice ASCII: utilizza 7 bit e quindi può rappresentare al massimo 2rappresentare al massimo 277=128 caratteri=128 caratteri• Con 8 bit (= byte) rappresento 256 caratteri (ASCII esteso)• Si stanno diffondendo codici più estesi (e.g. UNICODE) per

rappresentare anche i caratteri delle lingue orientali

Informatica - Claudia d'Amato 25

ASCII su 7 bit (alcune configurazioni)ASCII su 7 bit (alcune configurazioni)

canc~}|{zYxwvutsrqp111

onmlkjIhgfedcba`110

_^]\[ZYXWVUTSRQP101

ONMLKJIHGFEDCBA@100

?>=<;:9876543210011

/.-,+*)('&%$#"!sp010

11

11

11

10

11

01

11

00

10

11

10

10

10

01

10

00

01

11

01

10

01

01

01

00

00

11

00

10

00

01

00

00

Informatica - Claudia d'Amato 26

bit, Byte, KiloByte, MegaByte, …bit, Byte, KiloByte, MegaByte, …

bitbit = solo due stati, “0” oppure “1”. = solo due stati, “0” oppure “1”.

ByteByte = 8 bit, quindi 2 = 8 bit, quindi 288 = 256 stati = 256 stati

KiloByteKiloByte [ [KBKB]] = 2= 21010 Byte = 1024 Byte ~ 10 Byte = 1024 Byte ~ 1033 Byte Byte

MegaByteMegaByte [ [MBMB]] = 2= 22020 Byte = 1'048'576 Byte ~ 10 Byte = 1'048'576 Byte ~ 1066 Byte Byte

GigaByteGigaByte [ [GBGB]] = 2= 23030 Byte ~ 10 Byte ~ 1099 Byte Byte

TeraByteTeraByte [ [TBTB]] = 2= 24040 Byte ~ 10 Byte ~ 101212 Byte Byte

PetaBytePetaByte [ [PBPB]] = 2= 25050 Byte ~ 10 Byte ~ 101515 Byte Byte

ExaByteExaByte [ [EBEB]] = 2= 26060 Byte ~ 10 Byte ~ 101818 Byte Byte

Informatica - Claudia d'Amato 27

La codifica delle istruzioniLa codifica delle istruzioni Si segue lo schema presentato per i caratteri Si segue lo schema presentato per i caratteri

alfanumerici:alfanumerici:• quali e quante sono le istruzioni da codificare?• qual è la lunghezza delle successioni di bit da utilizzare ?• qual è la corrispondenza tra istruzioni e successioni di bit ?

Istruzioni aritmetico-logiche

Istruzioni per il

trasferimento dati

Istruzioni d i controllo

Codice Istruzione Codice Istruzione Cod ice Istruzione 0111 1100 ADD 1110 1000 LOAD 0100 1001 IF_EQ 0111 1101 SUB 1111 1000 STORE 0100 1000 GOTO 0111 1110 AND … … … … … … 0100 1100 RETURN … … … … … … … … … … … … … … … … … …

Informatica - Claudia d'Amato 28

Oltre al codice operativoOltre al codice operativo

… … è necessario far riferimento ai è necessario far riferimento ai datidati necessari per necessari per completare l’esecuzione dell’istruzione,completare l’esecuzione dell’istruzione,• e.g. addizione: è necessario che sia specificato (anche implicitamente)

dove leggere i due operandi da sommare e dove scrivere il risultato;

il il numeronumero dei dati da specificare è variabile, in funzione dei dati da specificare è variabile, in funzione delle istruzioni.delle istruzioni.

Informatica - Claudia d'Amato 29

Numeri naturaliNumeri naturali

Sistema di numerazione posizionale in base Sistema di numerazione posizionale in base bb•ckck–1…c0 rappresenta ck×bk + ck–1×bk–1 + … + c0×b0

•b=10 ⇒ 1101dieci indica 1×103 + 1×102 + 0×10 + 1×100

Conversione Conversione binario binario ⇒⇒ decimale decimale•basta scrivere il numero secondo la notazione posizionale utilizzando già il sistema decimale

•b=2 ⇒ 1101due indica 1×23 + 1×22 + 0×2 + 1×20 = 13dieci

Conversione Conversione decimale decimale ⇒⇒ binario binario

• Metodo delle divisioni successive

Informatica - Claudia d'Amato 30

Conversione binario Conversione binario ⇒⇒ decimale decimale101100due = 1dieci×25

dieci+ 0dieci×24dieci+ 1d ieci×23

dieci+ 1dieci×22dieci+ 0d ieci×21

dieci+ + 0d ieci×20

dieci = = 1dieci×32dieci + 0dieci×16dieci + 1dieci×8dieci + 1dieci×4dieci+ 0d ieci×2dieci

+ 0d ieci×1dieci = = 32dieci + 8dieci + 4dieci = = 44dieci

101110101due = 1dieci×28dieci+ 0dieci×27

dieci+ 1dieci×26dieci+ 1dieci×25

dieci+ 1d ieci×24dieci+

0dieci×23dieci+ 1dieci×22

dieci+ 0dieci×21dieci+ 1dieci×20

dieci = = 1dieci×256dieci+ 0dieci×128dieci+ 1dieci×64dieci+ 1dieci×32d ieci+ 1dieci×16d ieci+ 0dieci×8d ieci+ 1dieci×4dieci+ 0dieci×2dieci+ 1dieci×1d ieci = = 256dieci+ 64d ieci+ 32dieci+ 16dieci+ 4dieci+ 1dieci = = 373dieci

Informatica - Claudia d'Amato 32

Conversione decimale Conversione decimale ⇒⇒ binario binario Sistema di numerazione posizionale in base B che, in questo contesto si può Sistema di numerazione posizionale in base B che, in questo contesto si può

ipotizzare diversa da dieciipotizzare diversa da dieciccn–1n–1ccn–2n–2…c…c11cc00 = c = cn–1n–1××BBn–1n–1 + c + cn–2n–2××BBn–2n–2 + … + c + … + c11××BB11 + c + c00××BB00

ccn–1n–1ccn–2n–2…c…c11cc00 = c = cn–1n–1××BBn–1n–1 + c + cn–2n–2××BBn–2n–2 + … + c + … + c11××B + cB + c00

(infatti B(infatti B11 = B e B = B e B00 = 1) = 1) Dividendo il numero per il valore della base, il risultato che si ottiene è:Dividendo il numero per il valore della base, il risultato che si ottiene è:

(c(cn–1n–1××BBn–1n–1 + c + cn–2n–2××BBn–2n–2 + … + c + … + c11××B + cB + c00)/B =)/B = = c = cn–1n–1××BBn–2n–2 + c + cn–2n–2××BBn–3n–3 + … + c + … + c11 + c + c00/B/B

che può essere scomposto in modo da evidenziare quoziente e resto:che può essere scomposto in modo da evidenziare quoziente e resto:quoziente = cquoziente = cn–1n–1×B×Bn–2n–2 + c + cn–2n–2×B×Bn–3n–3 + … + c + … + c11

resto = cresto = c00

Il resto della divisione corrisponde all’ultima cifra della rappresentazione in Il resto della divisione corrisponde all’ultima cifra della rappresentazione in base B del numerobase B del numero, ma il suo valore è indipendente dalla base che si utilizza , ma il suo valore è indipendente dalla base che si utilizza per effettuare i conti.per effettuare i conti.

Applicando lo stesso procedimento al quoziente si ottiene la Applicando lo stesso procedimento al quoziente si ottiene la penultimapenultima cifra cifra della rappresentazione in base Bdella rappresentazione in base B

Ripetendo la procedura è possibile ottenere tutte le altre cifre.Ripetendo la procedura è possibile ottenere tutte le altre cifre.

Informatica - Claudia d'Amato 33

Conversione Conversione decimale decimale ⇒⇒ binario binario573573diecidieci : 2 : 2diecidieci ⇒⇒ quozientequoziente 286286diecidieci restoresto 11diecidieci

286286diecidieci : 2 : 2diecidieci ⇒⇒ quozientequoziente 143143diecidieci restoresto 00diecidieci

143143diecidieci : 2 : 2diecidieci ⇒⇒ quozientequoziente 7171diecidieci restoresto 11diecidieci

7171diecidieci : 2 : 2diecidieci ⇒⇒ quozientequoziente 3535diecidieci restoresto 11diecidieci

3535diecidieci : 2 : 2diecidieci ⇒⇒ quozientequoziente 1717diecidieci restoresto 11diecidieci

1717diecidieci : 2 : 2diecidieci ⇒⇒ quozientequoziente 88diecidieci restoresto 11diecidieci

88diecidieci : 2 : 2diecidieci ⇒⇒ quozientequoziente 44diecidieci restoresto 00diecidieci

44diecidieci : 2 : 2diecidieci ⇒⇒ quozientequoziente 22diecidieci restoresto 00diecidieci

22diecidieci : 2 : 2diecidieci ⇒⇒ quozientequoziente 11diecidieci restoresto 00diecidieci

11diecidieci : 2 : 2diecidieci ⇒⇒ quozientequoziente 00diecidieci restoresto 11diecidieci

1 000 111 1011 000 111 101duedue = 573 = 573diecidieci

(cifra binaria meno significativa)(cifra binaria meno significativa)

(cifra binaria più significativa)(cifra binaria più significativa)

Informatica - Claudia d'Amato 34

Conversione Conversione decimale decimale ⇒⇒ binario binario

18 : 2 = 918 : 2 = 9 resto 0resto 09 : 2 = 49 : 2 = 4 resto 1resto 14 : 2 = 24 : 2 = 2 resto 0resto 02 : 2 = 12 : 2 = 1 resto 0resto 01 : 2 = 01 : 2 = 0 resto 1resto 1

137 : 2 =137 : 2 = 6868 resto 1resto 168 : 2 =68 : 2 = 3434 resto 0resto 034 : 2 =34 : 2 = 1717 resto 0resto 017 : 2 =17 : 2 = 88 resto 1resto 18 : 2 =8 : 2 = 44 resto 0resto 04 : 2 =4 : 2 = 22 resto 0resto 02 : 2 = 2 : 2 = 11 resto 0resto 01 : 2 = 1 : 2 = 00 resto 1resto 1

Si calcolano i resti delle divisioni per due

10010

10001001

Informatica - Claudia d'Amato 35

Numeri binari: operazioniNumeri binari: operazioni Operazioni di somma di numeri binari naturali.Operazioni di somma di numeri binari naturali. Con gli 8 bit utilizzati negli esempi qui riportati si possono Con gli 8 bit utilizzati negli esempi qui riportati si possono

rappresentare i numeri naturali fino a 255dieci.rappresentare i numeri naturali fino a 255dieci. Operazioni che producono un risultato maggiore provocano Operazioni che producono un risultato maggiore provocano

il superamento della capacità di rappresentazioneil superamento della capacità di rappresentazione (indicato (indicato in gergo dal termine inglese in gergo dal termine inglese overflowoverflow). ).

1

1

Informatica - Claudia d'Amato 36

Ottali ed esadecimaliOttali ed esadecimali Utili per rappresentare sinteticamente valori binariUtili per rappresentare sinteticamente valori binari Ottali (base b = 8)Ottali (base b = 8)

• Alfabeto ottale: cifre comprese tra 0 e 7• 354otto = 3×82 + 5×81 + 4×80 = 192+40+4 = 236dieci

• 1461otto = 1×83 + 4×82 + 6×81 + 1×80 = 512+256+48+1 = 817dieci

• Ogni cifra ottale corrisponde a tre cifre binarie:• 11101100due = [11] [101] [100] = 354otto

• 1100110001due = [1] [100] [110] [001] = 1461otto

Esadecimali (base b = 16)Esadecimali (base b = 16)• Alfabeto esadecimale: cifre 0 – 9 + lettere A – F

• ECsedici = 14×161 + 12×160 = 224 + 12 = 236dieci

• 331sedic = 3×162 + 3×161 + 1×160 = 768+48+1 = 817dieci

• Ogni cifra esadecimale corrisponde a quattro cifre binarie:• 11101100due = [1110] [1100] = ECsedici

• 1100110001due = [11] [0011] [0001] = 331sedici

Informatica - Claudia d'Amato 37

Numeri naturali binari nei Numeri naturali binari nei calcolatoricalcolatori

Per la codifica deiPer la codifica dei numerinumeri naturalinaturali (interi (interi positivi) positivi) si utilizzano abitualmente successioni si utilizzano abitualmente successioni didi 32 bit32 bit (4 byte) (4 byte) con cuicon cui si possono si possono rappresentare i numeri compresi tra rappresentare i numeri compresi tra 00 e e 223232–1–1 = 4'294'967'295 ≈  = 4'294'967'295 ≈ 4×104×1099..

Informatica - Claudia d'Amato 39

Numeri interi relativiNumeri interi relativi Alfabeto binarioAlfabeto binario

• anche il segno è rappresentato da 0 o 1• è indispensabile indicare il numero kk di bit utilizzati

Modulo e segnoModulo e segno• 1 bit di segno (0 positivo, 1 negativo) • k – 1 bit di modulo

• Esempio: +6dieci = 0110ms –6dieci = 1110ms

• si rappresentano i valori da –2k–1+1 a 2k–1–1• con 4 bit i valori vanno da –7 a +7• con 8 bit i valori vanno da –127 a +127

• Attenzione: ci sono due rappresentazioni dello 0• con 4 bit sono +0dieci = 0000ms –0dieci = 1000ms

Informatica - Claudia d'Amato 40

Numeri interi in complemento a 2Numeri interi in complemento a 2 Alfabeto binarioAlfabeto binario

• anche il segno è rappresentato da 0 o 1• è indispensabile indicare il numero k di bit utilizzati

Complemento a 2Complemento a 2• X corrisponde al binario naturale di 2k + X

+6dieci ⇒ 24+6 = 22 ⇒ [1]0110 ⇒ 0110C2

–6dieci ⇒ 24– 6 = 10 ⇒ [0]1010 ⇒ 1010C2

• si rappresentano i valori da –2k–1 a 2k–1–1• con 4 bit i valori vanno da –8 a +7• con 8 bit i valori vanno da –128 a +127• Con 32 bit i valori vanno da –2'147'483'648 fino a +2'147'483'647

• Attenzione: c’è una sola rappresentazione dello 0• con 4 bit è +0dieci = 0000C2 mentre 1000C2 = –8dieci

Informatica - Claudia d'Amato 41

Il complemento a 2Il complemento a 2

Metodi alternativi per calcolare la Metodi alternativi per calcolare la rappresentazione di –X a partire da quella di Xrappresentazione di –X a partire da quella di X• Effettuare il complemento 1 di ogni bit di X, poi

aggiungere 1• rappresentazione di +6dieci = 0110C2 (NB ci vogliono 4 bit!!)

• complemento di tutti i bit ⇒ 1001C2 (corrisponderebbe a -7dieci)

• aggiungere 1 ⇒ 1010C2 (che corrisponde a -6dieci)

• Partendo da destra e andando verso sinistra, lasciare invariati tutti i bit fino al primo 1 compreso, complementare tutti gli altri bit.

• rappresentazione di +6dieci = 0110C2 (NB ci vogliono 4 bit!!)

• gli ultimi due bit (_ _ 1 0) rimangono invariati• gli altri due bit vengono complementati (1 0 1 0C2)

Informatica - Claudia d'Amato 43

Complemento a 2: alcune osservazioniComplemento a 2: alcune osservazioni I valori positivi iniziano con I valori positivi iniziano con 00, quelli negativi con , quelli negativi con 11 Data la rappresentazione di un numero su Data la rappresentazione di un numero su kk bit, la bit, la

rappresentazione dello stesso numero su rappresentazione dello stesso numero su k+1k+1 bit si bit si ottiene aggiungendo (a sinistra) un bit uguale al ottiene aggiungendo (a sinistra) un bit uguale al primo (primo (estensione del “segno”estensione del “segno”))• Rappresentazione di –6 su 4 bit = 1010• Rappresentazione di –6 su 5 bit = 11010• Rappresentazione di –6 su 8 bit = 11111010

la sottrazione si effettua come somma algebricala sottrazione si effettua come somma algebrica• 4 – 6 = +4 + (–6) = 0100 + 1010 = 1110 = –2• 9 – 6 = +9 + (–6) = 01001 + 11010 = [1]00011 = +3

Informatica - Claudia d'Amato 44

C2: operazioniC2: operazioni Operazioni di somma di numeri binari in complemento a Operazioni di somma di numeri binari in complemento a

due.due. Con gli 8 bit utilizzati negli esempi qui riportati si possono Con gli 8 bit utilizzati negli esempi qui riportati si possono

rappresentare i numeri interi da –128rappresentare i numeri interi da –128diecidieci fino a +127 fino a +127diecidieci

Informatica - Claudia d'Amato 45

C2: operazioniC2: operazioni

ATTENZIONEATTENZIONE Se due operandi dello stesso segno danno un Se due operandi dello stesso segno danno un

risultato di segno opposto vuol dire che è stata risultato di segno opposto vuol dire che è stata superata la capacità di calcolosuperata la capacità di calcolo ( (overflowoverflow).).

Informatica - Claudia d'Amato 46

Numeri razionaliNumeri razionali Cifre più significativeCifre più significative: : sono le cifre associate ai pesi maggiorisono le cifre associate ai pesi maggiori

• numeri > 1: le cifre più significative sono quelle poste più a sinistra• es.: 723'456 → cifra più significativa: 7, associata al peso 105, seguita da 2,

con peso 104, e così via;• numeri < 1: le cifre più significative sono le prime diverse da 0 che si

incontrano, a partire dalla virgola, da sinistra verso destra• es.: 0.0072345 --> cifra più significativa: 7, con peso 10–3, seguita da 2, con

peso 10–4, e così via. Se i numeri hanno un valore molto grande o piccolo, si considerano solo Se i numeri hanno un valore molto grande o piccolo, si considerano solo

le cifre più significative le cifre più significative -->--> rappresentazione in notazione scientificarappresentazione in notazione scientifica: : un numero in base B viene rappresentato come:un numero in base B viene rappresentato come: ±0.m×B±0.m×Bee,,• segnosegno (+ oppure –),• coefficiente mm, detto mantissamantissa, che è la parte frazionaria compresa tra 0 e 1 • esponenteesponente ee a cui elevare la base della numerazione, che è un intero ( 0)

Esempi:Esempi:• -123'450'000'000 diventa –0.12345×10–0.12345×101212,

con segno negativo, mantissa 12345, ed esponente 12;• +0.000012345, corrisponde a 0.12345×100.12345×10-5-5,

con segno positivo, mantissa 12345 ed esponente –5.

Informatica - Claudia d'Amato 47

Rappresentazione binariaRappresentazione binaria Per esempio +101010000 diventa +0.10101×10Per esempio +101010000 diventa +0.10101×100100101001,,

• segno positivo;• mantissa 10101 (si noti che la mantissa inizia sempre con 1);• esponente è 01001C2

(si noti come l’esponente sia un numero intero e per questo sia necessario adottare una rappresentazione che permetta la codifica anche di valori negativi, come, per esempio, quella in complemento a due).

Standard Standard IEEE-754IEEE-754 ( (Institute of Electrical and Electronic EngineersInstitute of Electrical and Electronic Engineers):):• precisione doppia: 64 bitprecisione doppia: 64 bit• precisione singola: 32 bitprecisione singola: 32 bit