Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare...

54
Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2019/2020 SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II 1

Transcript of Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare...

Page 1: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Corso di

Sistemi di Elaborazione delle Informazioni

Dott. Francesco Rossia.a. 2019/2020

SCUOLA DI MEDICINA E CHIRURGIA

Università degli Studi di Napoli Federico II

1

Page 2: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Rappresentazione dell’informazione

2

Page 3: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Nella prima lezione avevamo detto

• L’informatica studia:

– le fondamenta teoriche della rappresentazione e dell’elaborazione dell’informazione

– l’applicazione di tali teorie

• Abbiamo accennato ad alcuni aspetti relativi all’elaborazione dell’informazione:

– gli algoritmi, i programmi

3

Page 4: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

La rappresentazione dell’informazione

• Come rappresentiamo l’informazione che vogliamo elaborare?

– ad esempio, come si rappresenta un testo? E una fotografia? E una sequenza di DNA?

• Durante la lezione di oggi affronteremo:

– la rappresentazione dei numeri, dei caratteri e dei testi

– la rappresentazione delle immagini e del suono

4

Page 5: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Seconda parteRappresentazione dei numeri

5

Page 6: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Cos’è un numero?

• Numero: concetto astratto utilizzato per descrivere una quantità

• Non fare confusione tra:

– numero

• concetto astratto

– rappresentazione (o codifica) di un numero

• formalismo

• ogni numero corrisponde ad una configurazione univoca dei simboli (cifre) usate per la sua rappresentazione

6

Page 7: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Inventiamo una rappresentazione

• Concentriamoci sui numeri interi:

– come se dovessimo contare oggetti

• Inventiamo un modo di rappresentare i numeri:

– x → un oggetto

– x x → due oggetti

– x x x → tre oggetti

– x x x x → quattro oggetti

– ....

• Cosa ci ricorda?7

Page 8: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Due tipi di notazione

• “Additiva” e “posizionale”:

– nella rappresentazione della slide precedente, “x x x x x” corrisponde a “cinque” → sommiamo (contiamo) i simboli nella sequenza

• se scambiamo la posizione di due “x”, il numero non cambia

– nella nostra numerazione, “516” corrisponde a 5 centinaia più 1 decina più 6 unità:

• 516 è diverso da 651

• ogni cifra specifica una “quantità” diversa a seconda della sua posizione

8

Page 9: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

La rappresentazione decimale

• Sono i numeri che siamo abituati ad usare:

– si compongono usando dieci simboli: 0, 1, ..., 9

• Quanti valori diversi posso rappresentare:

– con una cifra → 10 valori (0, ..., 9)

– con due cifre → 100 valori (0, ..., 99)

– con tre cifre → 1000 valori (0, ..., 999)

– in generale, con n cifre possiamo rappresentare 10n valori (0, ..., 10n – 1)

9

Page 10: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

La rappresentazione decimale

• La posizione delle cifre decimali e il numero corrispondente:

cn x 10n + … + c3 x 103 + c2 x 102 + c1 x 101 + c0 x 100

dove c0, …, cn sono cifre da 0 a 9

• Esempio:

– 7523 = 7 x 103 + 5 x 102 + 2 x 101 + 3 x 100

10

unitàdecinecentinaiamigliaia…

Page 11: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

La numerazione in basi diverse • Sapete contare?

– 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ....

– “Troppo facile, non siamo mica all’asilo!”

• La rappresentazione in base 10 ci sembra scontata:

– abbiamo sempre usato solo questa!

• Ma è possibile rappresentare un numero in una base diversa da 10?

– cioè, possiamo rappresentare un valore avendo a disposizione un numero diverso di simboli?

11

Page 12: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

La numerazione binaria

• Abbiamo detto:

– la memoria contiene sequenze di bit (0 o 1)

• Dunque è una numerazione in base 2

• Attenzione: ci sono solo due simboli, ma non importa quali:

– si, no

– vero, falso

– acceso, spento

– 1, 0 (sono i più comodi, quindi useremo questi)12

Page 13: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Rappresentazione in base 2

• “Se ci sono solo 0 e 1, come faccio a rappresentare gli altri numeri, come il 5, per esempio?”

• Si usano sequenze di più cifre:

– esattamente come si fa in base 10, quando vogliamo rappresentare, ad es., il numero “dodici”

• Il numero “cinque” in “base due” si rappresenta come 101:

– anche questa è una notazione posizionale!

13

Page 14: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Quanti valori diversi in base 2?

• Con 1 cifra, rappresentiamo 2 valori diversi:

– 0, 1

• Con 2 cifre, rappresentiamo 4 valori diversi:

– 00, 01, 10, 11

• Con 3 cifre, rappresentiamo 8 valori diversi:

– 000, 001, 010, 100, 011, 101, 110, 111

• In generale, con n cifre possiamo rappresentare 2n valori diversi (0, …, 2n-1)

14

Page 15: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

La rappresentazione binaria

• La posizione delle cifre binarie e il numero corrispondente:

cn x 2n + … + c3 x 23 + c2 x 22 + c1 x 21 + c0 x 20

dove c0, …, cn sono 0 o 1

• Esempio:

– 10012 = 1 x 23 + 0 x 22 + 0 x 21 + 1 x 20

15

unoduequattrootto…

Page 16: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Per non fare confusione

• Per non fare confusione, indichiamo la base a pedice:

– 1810 = “diciotto in base 10”

– 1012 = “uno-zero-uno in base 2”

– 32 = “trentadue” (se non indichiamo nulla, è in base 10)

16

Page 17: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Contiamo in base 2

• Pensate a cosa fate quando contate in base 10 (con le cifre 0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

• Facciamo la stessa cosa in base 2 (cifre 0, 1)

– Iniziamo da : 010 Iniziamo da : 02

– Successivo è : 110 Successivo: 12

– Successivo è : 210 Successivo: 102

Non abbiamo un singolo simbolo per rappresentare due in base due. Facciamo come in base 10 quando siamo arrivati a contare fino a 9, aggiungiamo una cifra.

17

Page 18: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Contiamo in base 2

Base 10 Base 2

1 1

2 10

3 11

4 100

5 101

6 110

7 111

8 1000

9 1001

10 1010

... ...

18

Page 19: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

“Stai dando i numeri!”

• “Vabbè, ma se esprimo un numero in una base diversa da 10, come faccio a sapere a cosa corrisponde in base 10?”

• “Oppure, viceversa, se ho un numero in base 10, come faccio a trovare la sua rappresentazione in una base diversa?”

• “Non dovrò mica contare tutti i numeri uno per uno!”

19

Page 20: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Conversioni tra basi

• Esistono degli algoritmi (abbastanza semplici) per convertire un numero rappresentato in una base, nel corrispondente numero rappresentato in una qualsiasi altra base

20

Page 21: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Da base 2 a base 10

• E’ facile!

• Esempio:

– 10012 = 1 x 23 + 0 x 22 + 0 x 21 + 1 x 20 =

= 1 x 8 + 0 x 4 + 0 x 2 + 1 x 1 =

= 8 + 1 = 910

– 0110112 = 0 x 25 + 1 x 24 + 1 x 23 + 0 x 22 + 1 x 21 + + 1 x 20 =

= 0 x 32 + 1 x 16 + 1 x 8 + 0 x 4 + 1 x 2 + 1 x 1 =

= 16 + 8 + 2 + 1 = 2710

21

Page 22: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Da base 10 a base 2

• Serve qualche passaggio in più…

• Dato il numero x10 che vogliamo convertire, dobbiamo:

– dividere x10 per due e memorizzare il resto

• il resto sarà 0 oppure 1

– se il quoziente (della divisione precedente) non è uguale a zero, dividere per due il quoziente e memorizzare il resto

– iterare finché il quoziente non diventa zero

22

Page 23: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Da base 10 a base 2

• Esempio: conversione di 1310

– 13 : 2 → quoziente: 6, resto=1

– 6 : 2 → quoziente: 3, resto=0

– 3 : 2 → quoziente: 1, resto=1

– 1 : 2 → quoziente: 0, resto=1

– STOP!

Quindi: 1310 = 11012

• E’ corretto? Provate a fare la trasformazione inversa!

23

leggiamo i valori

dei resti:

il primo resto

corrisponde

all’ultimo bit, …,

l’ultimo resto al

primo bit

Page 24: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Algoritmo “Da10a2”: converti da decimale a binario

• Input: un numero in rappresentazione decimale

• Output: un numero in rappresentazione binaria

24

Page 25: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Procedura “Da10a2”1. Sia alfa il numero in input

2. Sia beta una lista vuota

3. Se alfa è zero, termina e restituisci beta

4. Sia gamma il resto di alfa diviso 2

5. Aggiungi gamma come simbolo più a sinistra di beta

6. alfa diventa uguale alla parte intera di (alfa diviso 2)

7. Torna al passo 325

Lista = “insieme in cui conta l’ordine”

Parte intera = “ignora i decimali”

Page 26: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Terminazione

• La procedura termina, in quanto:

– alfa assume sempre il valore di un intero non negativo

– ad ogni iterazione il valore di alfa diminuisce

– quando il valore di alfa diventa uguale a zero, l’algoritmo termina

• Domanda: sono soddisfatte anche le proprietà di determinatezza e calcolabilità?

26

Page 27: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Rappresentazione dei numeri

• Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo:

– convertiamo la rappresentazione decimale in rappresentazione binaria e salviamo questa

• Quando dobbiamo rileggere il numero:

– convertiamo la rappresentazione binaria (usata per salvare) in rappresentazione decimale

27

Page 28: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

E gli altri tipi di numeri?

• Numeri interi con segno:

– notazione in complemento a due

– bit del segno: per i numeri negativi è 1, altrimenti è 0

• Numeri razionali:

– notazione in virgola mobile

• numero = mantissa x baseesponente

• es: 6,523 = 6523 x 10-3

– es. con 1 byte: 1 bit di segno, 3 bit per l’esponente, 4 bit per la mantissa

28

Page 29: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

La rappresentazione esadecimale

• La numerazione esadecimale utilizza una notazione posizionale basata su 16 cifre (da 0 a 9 ed i caratteri A,B, C, D, E, F)

• Il numero AE16 corrisponde al numero decimale :

(10) X 161 + 14 x 160 = 17410

29

Page 30: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Da base 10 a base 16

• Esempio: conversione di 17410

– 174 : 16 → quoziente: 10, resto=14

– 10 : 16 → quoziente: 0, resto=10

– STOP!

A = 10

E = 14

Quindi: 17410 = AE16

30

Page 31: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Terza parteRappresentazione dei caratteri e

dei testi senza formattazione

31

“Cos’è la formattazione?”

Page 32: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

“E come rappresentiamo le lettere?”

• Per essere precisi, non parliamo di “lettere” ma di “caratteri”:

– quando vogliamo memorizzare un testo, dobbiamo memorizzare anche dei caratteri che non sono delle lettere (es: punteggiatura, spazio, ecc.)

• Si decide di associare ogni carattere ad un numero:

– es: A = 1, B=2, .... spazio = 89....

32

Page 33: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Capiamoci!

• Abbiamo detto che:

– sappiamo rappresentare i numeri (in decimale) in binario

– ad ogni carattere associamo un numero (in decimale)

• Quindi, in pratica:

– ad ogni carattere possiamo associare un numero in binario!

33

Page 34: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Le codifiche

• A quale numero è associata la lettera “a”?

– possiamo scegliere un numero qualsiasi, a patto che poi tutti usino sempre questo numero per “a”

• cioè, che si decida una codifica sulla quale tutti concordano

• Esistono diverse codifiche:

– ASCII (=American Standard Code for Information Interchange)

– ASCII esteso

– Unicode

– …34

Page 35: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Le differenze tra le diverse codifiche

• Differenza principale tra le codifiche:

– i caratteri (e il numero di caratteri) che possono essere rappresentati

• Maggiore è il numero di caratteri che possono essere rappresentati →maggiore il numero di bit necessari per rappresentarlo!

35

Page 36: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Dimensione di una codifica

• Quanti bit servono per rappresentare 26 caratteri?

– 4 bit? Rappresentano 16 (=24) valori diversi: non bastano!

– 5 bit? Rappresentano 32 (=25) valori diversi: va bene!

• Quanti caratteri vogliamo rappresentare in tutto?

– lettere dell’alfabeto, lettere accentate, punteggiatura, qualche spazio, qualche carattere speciale (non importa cosa sono)

– Codice ASCII esteso: 256 caratteri

• 8 bit (1 byte) → 28=256 caratteri diversi36

Page 37: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

37

01100001

Page 38: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Altri caratteri da rappresentare?

• Non tutti scrivono nel nostro alfabeto!

– arabo, cinese, greco, cirillico, ecc.

• Codifica Unicode:

– codifica che utilizza 32 bit (= 4 byte) per ogni carattere

• 232 (=circa 4 miliardi) di caratteri rappresentabili

– rappresenta tutti i caratteri di tutte le lingue (correnti e morte)

38

Page 39: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Come si rappresenta un testo non formattato?

• Ricorda: la formattazione è l’aggiunta di informazioni su come deve essere mostrato il testo:

– es: tipo e dimensione del carattere, allineamento, spazio tra le righe, sottolineato, grassetto, ecc.

• Un testo non formattato si rappresenta come una serie di caratteri codificati, uno dopo l’altro

39

Page 40: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Esempio

ciao ciao

• Dobbiamo codificare 9 caratteri:

– perché 9 e non solo 8?

• Quanto spazio sarà necessario per memorizzare queste informazioni?

– dipende dalla codifica!

– ASCII esteso: 1 byte per ogni carattere → 9 byte

– Unicode: 4 byte per ogni carattere → 36 byte

40

Page 41: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

La codifica delle informazioni

• Abbiamo detto che 01100001 rappresenta il carattere “a”

• Ma sappiamo che 01100001 rappresenta anche il numero intero 9710

• Quando un programma legge 01100001, come fa a sapere come interpretare 01100001?

– ogni programma scrive (o legge) delle informazioni seguendo un formato

41

Page 42: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Nella pratica

• Se provi ad aprire un file che NON è un documento di testo (es: un foglio di calcolo) usando un editor di testi, cosa succede?

– l’editor di testi visualizza delle informazioni senza senso

– perché prova ad interpretare come testo qualcosa che non è un testo

42

Page 43: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Quarta parteRappresentazione dei testi

con formattazione

43

“Ho capito cos’è la formattazione”

Page 44: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Codifica del testo formattato –un tentativo

• Esempio: vogliamo codificare un testo con alcuni caratteri sottolineati

• Inventiamo una nuova codifica:

– chiamiamola TNF (=Tanto Non Funziona)

• 1 = a; 2 = b; ...

• 30 = A; 31 = B; ...

• 60 = a; 61 = b; ...

• 90 = A; 91 = B; ...

– qual è il problema di TNF?

44

Page 45: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Problemi con TNF

• Vantaggio: è semplice, basta che tutti si accordino, come con ASCII o UNICODE

• Tuttavia:

– per codificare la sola sottolineatura abbiamo dovuto raddoppiare il numero di caratteri

– se ora volessimo codificare anche il grassetto, la sottolineatura e l’italico (con tutte le loro combinazioni)?

– e non abbiamo ancora considerato moltissimi altri tipi di formattazione:

• tipo di font, dimensione del font, colore del font, posizione del paragrafo, interlinea, ecc.

45

Page 46: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Problemi con TNF

• Avremmo bisogno di milioni di diverse combinazioni solo per rappresentare le lettere del nostro alfabeto:

– ogni carattere occuperebbe molto spazio

– non sarebbe possibile aggiungere nuovi font, nuove dimensioni del carattere, ecc.

• Assolutamente TNF non va bene!

– e infatti non esiste

• “Ma allora, come si fa?”46

Page 47: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

La marcatura del testo

• Definiamo un carattere speciale:

– ad esempio “&”

• Quello che segue il carattere & indica come deve essere formattato il testo

• Esempio: “ciao ciao” potrebbe essere codificato come:

– ciao &IniziaSottolineato ciao &FineSottolineato

– che a sua volta può essere memorizzato come normale testo in codifica ASCII

• Quindi basta accordarsi sulle marcature da utilizzare, e per il resto si usa la codifica dei caratteri tipo ASCII o Unicode

47

Page 48: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Quanto spazio occupa il testo formattato?

• Lo stesso spazio del testo non formattato...

• …più lo spazio per codificare le marcature:

– dipende dal tipo di marcature utilizzate

– in genere occupa molto poco spazio

48

Page 49: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Un esempio: HTML

• HTML (=HyperText Markup Language) è una codifica del testo formattato:

– “ciao <u> ciao </u>” scritto nel linguaggio HTML corrisponde a “ciao ciao”

– “ciao <b> ciao </b>” scritto nel linguaggio HTML corrisponde a “ciao ciao”

• marcatura=tag, racchiusa fra parentesi triangolari

• Utilizzato per scrivere le pagine web

• Se avremo tempo, studieremo anche l’HTML

49

Page 50: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

50

Quinta parte:Riepilogo

Page 51: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

• E’ stata efficace la lezione di oggi?

“Ci sono 10 tipi di persone al mondo: quelli che conoscono la codifica binaria

e quelli che non la conoscono”

(anonimo)

• Oggi abbiamo imparato:

– la rappresentazione binaria dei numeri e degli altri caratteri

– la conversione da numero decimale a binario, e viceversa

– la codifica di testi formattati e non formattati

– i codici ASCII e Unicode51

Page 52: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Esercizi

• Converti i seguenti numeri da base 10 a base 2:

– 9, 15, 23

• Converti i seguenti numeri da base 2 a base 10:

– 10010100, 11010, 001011

• Disegna il diagramma di flusso dell’algoritmo “Da10a2”

52

Page 53: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Esercizi

• Ecco un messaggio in codice ASCII esteso. Cosa dice?

00100010 01101000 01101111 00100000 01110100 01110010 01101111 01110110 01100001 01110100 01101111 00100000 01101100 01100001 00100000 01110011 01101111 01101100 01110101 01111010 01101001 01101111 01101110 01100101 00100001 00100010

53

Page 54: Corso di€¦ · Rappresentazione dei numeri •Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: –convertiamo la rappresentazione decimale

Esercizi

• Ecco un messaggio in codice ASCII esteso. Cosa dice?

01001001 00100000 01100011 01101111 01101101 01110000 01110101 01110100 01100101 01110010 00100000 01110011 01101111 01101110 01101111 00100000 01101001 01101110 01110101 01110100 01101001 01101100 01101001

54