Elementi di Informatica e Programmazione - Ingegneria

Elementi di Informatica e
Programmazione
Tipologie di codici
!
La Codifica dell’informazione
(parte 3)
Nel seguito vedremo tipologie di rappresentazioni
diverse:
Senza assumere limitazioni sul numero di bit a disposizione:
per numeri [notazione binaria, ovvero posizionale con base 2]
Disponendo di un numero di bit limitato:
!
!
Corsi di Laurea in:
numeri naturali
interi relativi [valore assoluto e segno, compl. a 1, compl. a 2]
reali [virgola fissa e virgola mobile]
valori logici, caratteri alfabetici, testi
suoni, immagini e sequenze video
codici per la rilevazione e correzione di errori
!
Ingegneria Civile
Ingegneria per l Ambiente e il Territorio
!
!
!
Università degli Studi di Brescia
!
!
Codici di compressione (senza | con perdita)
!
Docente: Daniela Fogli
Daniela Fogli – Elementi di Informatica e Programmazione
Formato
Rappresentazione dei numeri reali
!
Per rappresentare numeri come
!
!
!
1/3 = 0.33333333333….
π = 3.141592653…
2 = 1.4142135…
!
In entrambi i casi, una rappresentazione è definita
mediante un formato
Il numero n di bit a disposizione
I campi in cui sono suddivisi i bit
!
servirebbe un numero di cifre illimitato
!
!
!
!
2
!
Nel calcolatore è possibile usare solo successioni di bit
di lunghezza finita
!
!
Necessaria approssimazione
!
Quanti
In che ordine
Quanti bit per ciascun campo
Cosa rappresenta ciascun campo
Esempio di formato a 32 bit
Rappresentazione in virgola fissa
2 modalità
Rappresentazione in virgola mobile
Daniela Fogli – Elementi di Informatica e Programmazione
3
S
E
M
1
8
23
Vedremo poi il significato…
Daniela Fogli – Elementi di Informatica e Programmazione
4
Rappresentazione in virgola fissa
Altro esempio
Abbiamo n bit a disposizione (e vogliamo rappresentare numeri reali):
- un campo del formato rappresenta il segno
!
Esempio: n = 32 bit
- un campo del formato rappresenta la parte intera
30
- un campo del formato rappresenta la parte frazionaria
S
Esempio: n = 24 bit
S
Parte intera
1 bit
16 bit
0000000000000000
!
7 bit
0000001
16 bit
15 bit
Daniela Fogli – Elementi di Informatica e Programmazione
5
6
Intervallo di rappresentazione:
in generale
Nel formato precedente a 32 bit
!
!
- Parte intera: massimo valore assoluto (216 – 1) = 65535
- Parte frazionaria:
n bit di cui 1 per il segno, nI per la parte intera, nF per la parte
frazionaria
Numero (positivo) massimo rappresentabile NMAX
0 111……………………111 111……………………111
nF bit
nI bit
2-15
Max parte intera: 2nI-1
Max parte frazionaria: 1 - 2-nF
⇒ 1 - 2-15 = 0.9999694824 circa 1
se nF grande, 1 - 2-nF pari a circa 1
NMAX = (2nI-1) + (1 - 2-nF)
se nF grande, NMAX pari a circa 2nI
NMAX = 65535.9999694824 circa 65536
Daniela Fogli – Elementi di Informatica e Programmazione
Es. +13.25dieci sarebbe rappresentato così
(2-7)
Intervallo di rappresentazione: esempio
0.111111111111111 +
0.000000000000001 =
1.000000000000000
Parte frazionaria
00000000000001101010000000000000
Daniela Fogli – Elementi di Informatica e Programmazione
!
Parte intera
Parte decimale
Il numero più piccolo rappresentabile maggiore di 0 è:
0
0
15 14
7
Daniela Fogli – Elementi di Informatica e Programmazione
8
Granularità
Un inconveniente
Qual è la precisione della rappresentazione in virgola fissa?
!
Granularità: differenza tra un numero e il successivo
rappresentabile ! quanto più è piccola, tanto più precisa è la
rappresentazione!
!
Con la rappresentazione precedente, vogliamo rappresentare un
numero grande , ad esempio +60.000
!
0
1110101001100000
000000000000000
a cosa mi servono questi?
Dato un numero, rappresentato, qual è il successivo?
Es.
⇒ Molto meglio un campo più grande per la parte intera!
00000000000001101.010000000000000
0.000000000000001
Vogliamo rappresentare un numero piccolo , ad esempio +2-14
!
00000000000001101.010000000000001
!
In generale: la granularità è fissa e pari a
!
Per un qualsiasi numero rappresentabile I, il successivo è I + 2-nF
0
2-nF
a cosa mi servono questi?
Daniela Fogli – Elementi di Informatica e Programmazione
9
!
!
10
Notazione esponenziale
Idea
!
000000000000010
⇒ Molto meglio un campo più grande per la parte frazionaria!
!
Daniela Fogli – Elementi di Informatica e Programmazione
0000000000000000
Per numeri grandi non serve una grande precisione (piccola
granularità)
Per numeri piccoli non serve un grande intervallo di
rappresentazione ma serve elevata precisione
!
Nelle calcolatrici scientifiche, un numero in base 10 viene
rappresentato come
m x 10 exp
Si vuole un sistema di rappresentazione in cui la granularità
dipende dal numero rappresentato: maggiore è l’ordine di
grandezza, minore è la granularità… si può estendere così
l’intervallo dei numeri rappresentabili
mantissa base
esponente
!
Esempio: 159 300 000 = +1.593 x 108 dove m=+1.593 ed e=8
!
Esempio: -0.00001593 = -1.593 x 10-5 dove m= -1.593 ed e=-5
IDEA: rappresentare un numero come
N = mant * 2esp
(l’esponente 2 è più comodo con numeri binari)
Daniela Fogli – Elementi di Informatica e Programmazione
11
Daniela Fogli – Elementi di Informatica e Programmazione
12
Nel calcolatore:
Codifica in virgola mobile: formato
Codifica in virgola mobile
!
Virgola mobile o Floating point
Convenzioni di notazione riguardanti:
Dato un numero da rappresentare N:
!
Formato della rappresentazione
!
Modalità di codifica della mantissa
!
!
!
numero, ordine, lunghezza, significato dei campi
N = ±mant*2esp
Necessaria una forma univoca di scomposizione in cui la mantissa
sia in una qualche forma normalizzata (esempio: cifra binaria più
significativa diversa da zero a destra del punto radicale - forma
0.1xx…xxx)
Esempio di formato: sM
Modalità di codifica dell’esponente
!
Necessario rappresentare numeri interi relativi (esempi: in
complemento a 2, rappresentazione in eccesso, …)
Si memorizzano
segno, mantissa ed esponente
|mant|
nM bit
esp
nE bit
Esempi
1011010111*229
0.11011011*2-36
Daniela Fogli – Elementi di Informatica e Programmazione
Daniela Fogli – Elementi di Informatica e Programmazione
13
Rappresentazione della mantissa
14
Normalizzazione
Normalizzazione nella forma 1.xxx…xxx
N = ±mant*2esp
ESEMPIO 1
!
Rappresentazione binaria:
1001.01001 =
1.00101001 * 23
(forma normalizzata)
In questo modo la rappresentazione non è univoca:
0.1due = 1 * 2-1 ! mant = 1 esp = -1
= 10 * 2-2 ! mant = 10 esp = -2
ESEMPIO 2
= 0.1 * 20 ! mant = 0.1 esp = 0
Rappresentazione binaria:
0.001011 =
1.011 * 2-3
(forma normalizzata)
⇒ si stabilisce la forma normalizzata della mantissa
Daniela Fogli – Elementi di Informatica e Programmazione
15
Daniela Fogli – Elementi di Informatica e Programmazione
16
Nota sulla rappresentazione
dell esponente
Rappresentazione dell’esponente
!
È un numero intero relativo
!
Codifica con polarizzazione (o eccesso)
!
!
!
!
15
Numeri positivi
Prevede di aggiungere una costante positiva C in modo tale
che i valori negativi compresi fra –C e 0 vengano codificati
come interi positivi
Con e bit a disposizione, C viene scelta circa a metà dei valori
possibili dell’esponente, tipicamente 2e-1 oppure 2e-1 – 1
Con e bit a disposizione per l esponente l’intervallo dei numeri
rappresentabili è [-C, 2e-1-C]
7
+8
+7
0
0
Esempio:
!
!
4 bit per l’esponente, rappresentazione in eccesso 7 (C = 23 – 1)
Numeri rappresentabili [-7, +8]
Daniela Fogli – Elementi di Informatica e Programmazione
-7
Daniela Fogli – Elementi di Informatica e Programmazione
17
Esempio
!
!
Numeri negativi
18
Standard IEEE 754
Dato un codice a 16 bit di cui 1 per il segno, 11 per la
mantissa, 4 per l’esponente con rappr. eccesso 7
!
Il numero 19.625dieci sarà
!
10011.101due = 1.0011101due x 24 da cui:
!
Necessità di uniformare la precisione del calcolo (calcolatori di
produttori diversi con strutture differenti)
Lo standard IEEE* 754 stabilisce la lunghezza di mantissa ed
esponente e le loro codifiche
32 bit per i numeri in precisione singola
M = 10011101000due
1 bit segno, 8 bit esponente, 23 bit mantissa
E = 4dieci + 7dieci = 11dieci = 1011due
1
!
8
23
64 bit per i numeri in precisione doppia
e la codifica del numero risulta
0 10011101000 1011
1
*Institute
Daniela Fogli – Elementi di Informatica e Programmazione
19
11
1 bit segno, 11 bit esponente, 52 bit
mantissa
52
of Electrical and Electronic Engineering
Daniela Fogli – Elementi di Informatica e Programmazione
20
Nota sulla rappresentazione
dell’esponente
IEEE 754 Singola Precisione
S
E
M
1
8
23
Segno S: 0 segno +
255
Esempio: num= -3.5
1 segno -
Numeri positivi
Segno: 1
Normalizzazione e mantissa
N = 1.xxxxxxxxx
* 2esp
23 bit (M)
hidden bit
Rappresentazione dell’esponente
E = esp + 127
Rappresentazione in 8 bit a eccesso 127,
con le configurazioni 00000000 e 11111111
non ammesse (-126 ≤ esp ≤ 127)
127
+128
num = 11.1
= 1.11 * 21
M = 1100…0
+127
0
Numeri negativi
0
E = 1 +127 = 128
= 10000000
11000000011000000000000000000000
Daniela Fogli – Elementi di Informatica e Programmazione
-127
Daniela Fogli – Elementi di Informatica e Programmazione
21
Esercizio d’esame (1)
22
Esercizio d’esame (2)
Ricavare il valore decimale del seguente numero in virgola mobile
rappresentato secondo lo standard IEEE 754 a 32 bit: [3 punti]
0 10000000 10000000000000000000000
Se il campo esponente di una codifica in formato IEEE 754 in singola
precisione contiene il numero 00111011 qual è il valore decimale
dell’esponente?
[2 punti]
Soluzione
Soluzione
E = esp + 127
Segno: +
valori rappresentabili da –127 a +128
(NB: gli estremi non sono utilizzati propriamente)
Nel caso specifico:
Esponente:
Mantissa:
E = 59
quindi esp = 59-127 = -68
Daniela Fogli – Elementi di Informatica e Programmazione
E = 27 = 128
esp = 128-127 = 1
mant = 1.1
⇒ N = 1.1due * 21 = 11due = 3dieci
23
Daniela Fogli – Elementi di Informatica e Programmazione
24
L’insieme dei numeri in virgola mobile
non coincide con R
Esercizio d’esame (3)
Rappresentare il numero decimale –4.5 secondo lo standard in
virgola mobile IEEE 754 a 32 bit. [3 punti]
!
Soluzione
!
Segno: 1
Rapp. binaria:
4.5dieci = 100.1due
Esponente:
esp = 2
⇒ IEEE754:
⇒
E = 2+127 = 129dieci =
10000001
⇒ Approssimazioni inevitabili
1 10000001 00100000000000000000000
Daniela Fogli – Elementi di Informatica e Programmazione
Daniela Fogli – Elementi di Informatica e Programmazione
25
Esempio:
IEEE 754 con singola precisione
MinExp = -126
MaxExp = +127
!
[estremi per scopi speciali]
!
Numero più piccolo normalizzato: ± 1.00…02 * 2-126 = 2-126
-∞
NORMALIZZATI -
128
-2
NORMALIZZATI +
-126
-2
0
-126
2
!
OVERFLOW +
128
2
26
E lo zero???
Numero più grande normalizzato: ± 1.11…12 * 2127 ≈ 2*2127 = 2128
OVERFLOW -
L’insieme dei numeri in virgola mobile non è denso ed
è limitato tra un numero reale massimo ed uno
minimo esprimibili
⇒ L’aritmetica reale del calcolatore è diversa da
quella classica
N = 1.001 * 22
Forma normalizzata:
L’insieme dei numeri reali è denso e illimitato
+∞
In generale lo zero non si potrebbe rappresentare
perché la mantissa è sempre 1.M …
Si usa un valore speciale dell’esponente (E = 0) e si
pone la mantissa a 0000….000
! questa rappresentazione significa 0
Altri casi particolari di E (E=0 oppure E=255) per
rappresentare ±∞, risultati di operazioni non valide,
numeri denormalizzati
NB: nel caso della virgola fissa, l’intervallo dei valori rappresentabili
sarebbe molto più limitato. Es:
- anche se dedicassimo tutti i 32 bit alla parte intera, max 232-1
- anche se dedicassimo tutti i 32 bit alla parte fraz, min 2-32
Daniela Fogli – Elementi di Informatica e Programmazione
27
Daniela Fogli – Elementi di Informatica e Programmazione
28
I problemi che nascono dalla natura
digitale del calcolatore
!
!
La separazione fra 1.0..00 x 299 e 1.0..01 x 299 (ovvero, 2-23+99 = 276)
è molto maggiore di quella fra 1.0..00 x 20 e 1.0..01 x 20 (ovvero, 2-23)
I numeri nelle regioni (-∞, -2128), (-2-126, 0), (0, 2-126),
(2128 , +∞) non possono essere rappresentati
Determiniamo quanti numeri possono essere rappresentati
!
!
!
!
Esempio
OVERFLOW -
la mantissa varia da m = 1.0..0 a 1.1..1 (223 numeri)
-∞
L’esponente varia da e = -126 a + 127 (254 ordini di grandezza)
223
in totale:
x 254 numeri positivi,
" 4.261.412.865 numeri
223
NORMALIZZATI +
-2-126
0
2-126
OVERFLOW +
2128
+∞
x 254 numeri negativi, e lo zero
1.0..00
Inoltre, i due intervalli di numeri positivi e negativi esprimibili non
formano insiemi continui: i numeri non sono cioè
uniformemente distribuiti (più radi per valori elevati
dell’esponente e più fitti per valori piccoli dell’esponente – si
infittiscono nei pressi dello zero)
Daniela Fogli – Elementi di Informatica e Programmazione
1.0..00 x 299
La precisione è concentrata dove ce n’è bisogno!
Daniela Fogli – Elementi di Informatica e Programmazione
29
Ma possono anche accadere
dei disastri
!
NORMALIZZATI -
-2128
30
Cos’era successo?
Il 25 febbraio del 1991, durante la Guerra del Golfo, una batteria
di missili Patriot americana fallì l'intercettazione di un missile Scud
Iracheno. Lo Scud colpì una postazione di soldati americani
uccidendone 28
!
In uno studio successivo si scoprì il motivo:
!
!
!
calcolo inaccurato del tempo, che si era iniziato a contare dalla
messa in funzione della batteria, attraverso un contatore che si
aggiornava ogni 0.1 sec
il tempo totale (in decimi di secondo) fu moltiplicato per 0.1
per ottenere il tempo in secondi
ma 0.1 non è rappresentabile esattamente in virgola mobile
0.110 = 0.00011
!
!
!
Daniela Fogli – Elementi di Informatica e Programmazione
31
l’errore con la precisione adottata: 0.000000095367431640625
il Patriot era in funzione da 100 ore per cui, moltiplicando
l’errore per 100x60x60x10, sottostima del tempo di 0.34 s
… e in 0.34 sec lo Scud percorre circa 500 m…!
Daniela Fogli – Elementi di Informatica e Programmazione
32
Operazioni sui numeri reali
!
Addizione e sottrazione:
!
!
!
!
Somma tra i seguenti due numeri rappresentati IEEE 754:
si trasformano (con eventuale perdita di precisione) gli addendi in
una rappresentazione con uguale esponente (il maggiore)
si sommano (sottraggono) le mantisse
si normalizza se necessario
0 01111011 000…111
!
!
!
!
33
!
Divisione per numeri molto piccoli
Daniela Fogli – Elementi di Informatica e Programmazione
34
Se ho la sottrazione
1.11100…0 x 2-126 1.11000…0 x 2-126 =
0.00100…0 x 2-126
" il risultato può cadere nell’intervallo di overflow
(+ o -)
!
0 01111101 010…100
Fenomeno della cancellazione:
esempio
Problemi con le operazioni
Addizioni e sottrazioni possono dare luogo a errori
Nota: perdo le
2 cifre meno
significative
della mantissa
0.010…001 + [ x 2-2]
1.000…011 = [ x 2-2]
[ x 2-2] NB: risultato già normalizzato!
1.010…100
Risulta quindi
!
E = 125 (– 127 = -2)
Sommo le mantisse:
si sottraggono gli esponenti
si dividono le mantisse
si normalizza se necessario
Daniela Fogli – Elementi di Informatica e Programmazione
0 01111101 000…011
Porto l’esponente del primo operando a -2:
1.000…111 x 2-4 = 0.010…001 x 2-2
si sommano gli esponenti
si moltiplicano le mantisse
si normalizza se necessario
Divisione:
!
e
E = 123 (– 127 = -4)
Moltiplicazione:
!
!
Esempio di addizione
! che normalizzato diventerebbe 1.0…0 x 2-129 che
viene dunque approssimato con 0, perché il minimo
esponente esprimibile è -126
Esempio: sottrazione fra due numeri quasi uguali
" può dar luogo al fenomeno della cancellazione
(risultato = 0)
NB: in realtà, è possibile esprimere numeri denormalizzati
prossimi allo 0, fino a 2-149, ma noi non ce ne occupiamo
(vedere libro per gli interessati)
Daniela Fogli – Elementi di Informatica e Programmazione
35
Daniela Fogli – Elementi di Informatica e Programmazione
36
Esercizi
!
!
Tipologie di codici
Esprimere i numeri decimali 45.25, -234.875, 67.75, -83.8125 in
codifica binaria secondo lo standard IEEE 754 (in singola
precisione a 32 bit)
!
Nel seguito vedremo tipologie di rappresentazioni
diverse:
!
Ricavare il valore decimale dei seguenti numeri in virgola mobile
rappresentati secondo lo standard IEEE 754 a 32 bit:
!
Senza assumere limitazioni sul numero di bit a disposizione:
per numeri [notazione binaria, ovvero posizionale con base 2]
Disponendo di un numero di bit limitato:
!
!
0 10000100 00010001000000000000000
!
1 10000001 01010110000000000000000
!
!
!
!
Daniela Fogli – Elementi di Informatica e Programmazione
Codici di compressione (senza | con perdita)
Daniela Fogli – Elementi di Informatica e Programmazione
37
Codifica binaria di valori logici
!
Valore logico: esprime il valore di verità (vero o
falso) di un determinato fatto
!
Abbiamo già visto l’Algebra di Boole per codificare
variabili logiche e formule logiche
Nel seguito vedremo tipologie di rappresentazioni
diverse:
!
Senza assumere limitazioni sul numero di bit a disposizione:
per numeri [notazione binaria, ovvero posizionale con base 2]
Disponendo di un numero di bit limitato:
!
!
!
!
!
!
!
Daniela Fogli – Elementi di Informatica e Programmazione
38
Tipologie di codici
!
!
numeri naturali
interi relativi [valore assoluto e segno, compl. a 1, compl. a 2]
reali [virgola fissa e virgola mobile]
valori logici, caratteri alfabetici, testi
suoni, immagini e sequenze video
codici per la rilevazione e correzione di errori
39
numeri naturali
interi relativi [valore assoluto e segno, compl. a 1, compl. a 2]
reali [virgola fissa e virgola mobile]
valori logici, caratteri alfabetici, testi
suoni, immagini e sequenze video
codici per la rilevazione e correzione di errori
Codici di compressione (senza | con perdita)
Daniela Fogli – Elementi di Informatica e Programmazione
40
ASCII Table
Codifica binaria dei caratteri
Quanti oggetti?
! 10 cifre
! 26 lettere minuscole + 26 lettere maiuscole = 52
! ~30 segni di interpunzione
! ~30 caratteri di controllo (LF, CR, EOF, …)
~120 oggetti ⇒ k = %log2120& = 7 (sufficienti 7 bit)
!
Il codice ASCII utilizza 7 bit e quindi può rappresentare al
massimo n = 27 = 128 caratteri
Codice ASCII esteso: utilizza 8 bit e quindi codifica 256
caratteri
Codice UNICODE: nato come codice a 16 bit e quindi in grado
di codificare 65536 caratteri (anche quelli delle lingue orientali…
ma non tutti! Sono circa 200 000!) ⇒ poi estensione a 21 bit
!
!
!
Daniela Fogli – Elementi di Informatica e Programmazione
!
!
!
!
! 
!
!
!
lo stile di scrittura (grassetto, corsivo, sottolineato,…)
la dimensione del carattere
il tipo o font (times new roman, arial, courier,…)
l ampiezza dei margini della pagina
…
---------------
32 20 040 SPACE
64 40 100 @
96 60 140 `
1
1 001 SOH (start of heading)
33 21 041 !
65 41 101 A
97 61 141 a
2
2 002 STX (start of text)
34 22 042 "
66 42 102 B
98 62 142 b
3
3 003 ETX (end of text)
35 23 043 #
67 43 103 C
99 63 143 c
4
4 004 EOT (end of transmission)
36 24 044 $
68 44 104 D
100 64 144 d
5
5 005 ENQ (enquiry)
37 25 045 %
69 45 105 E
101 65 145 e
6
6 006 ACK (acknowledge)
38 26 046 &
70 46 106 F
102 66 146 f
7
7 007 BEL (bell)
39 27 047 '
71 47 107 G
103 67 147 g
8
8 010 BS
40 28 050 (
72 48 110 H
104 68 150 h
9
9 011 TAB (horizontal tab)
41 29 051 )
73 49 111 I
105 69 151 i
(backspace)
10
A 012 LF
(NL line feed, new line) 42 2A 052 *
74 4A 112 J
106 6A 152 j
11
B 013 VT
(vertical tab)
43 2B 053 +
75 4B 113 K
107 6B 153 k
12
C 014 FF
(NP form feed, new page) 44 2C 054 ,
76 4C 114 L
108 6C 154 l
13
D 015 CR
(carriage return)
45 2D 055 -
77 4D 115 M
109 6D 155 m
14
E 016 SO
(shift out)
46 2E 056 .
78 4E 116 N
110 6E 156 n
15
F 017 SI
(shift in)
47 2F 057 /
79 4F 117 O
111 6F 157 o
16 10 020 DLE (data link escape)
48 30 060 0
80 50 120 P
112 70 160 p
17 11 021 DC1 (device control 1)
49 31 061 1
81 51 121 Q
113 71 161 q
18 12 022 DC2 (device control 2)
50 32 062 2
82 52 122 R
114 72 162 r
19 13 023 DC3 (device control 3)
51 33 063 3
83 53 123 S
115 73 163 s
20 14 024 DC4 (device control 4)
52 34 064 4
84 54 124 T
116 74 164 t
21 15 025 NAK (negative acknowledge)
53 35 065 5
85 55 125 U
117 75 165 u
22 16 026 SYN (synchronous idle)
54 36 066 6
86 56 126 V
118 76 166 v
23 17 027 ETB (end of trans. block)
55 37 067 7
87 57 127 W
119 77 167 w
24 18 030 CAN (cancel)
56 38 070 8
88 58 130 X
120 78 170 x
25 19 031 EM
57 39 071 9
89 59 131 Y
121 79 171 y
26 1A 032 SUB (substitute)
58 3A 072 :
90 5A 132 Z
122 7A 172 z
27 1B 033 ESC (escape)
59 3B 073 ;
91 5B 133 [
123 7B 173 {
28 1C 034 FS
(file separator)
60 3C 074 <
92 5C 134 \
124 7C 174 |
29 1D 035 GS
(group separator)
61 3D 075 =
93 5D 135 ]
125 7D 175 }
30 1E 036 RS
(record separator)
62 3E 076 >
94 5E 136 ^
126 7E 176 ~
31 1F 037 US
(unit separator)
63 3F 077 ?
95 5F 137 _
127 7F 177 DEL
(end of medium)
42
Formati standardizzati che sono orientati alla
produzione di documenti destinati a stampa e
visualizzazione:
!
!
!
testo semplice (text o txt): corrisponde a una sequenza di caratteri
ASCII senza caratteristiche di formattazione
testo arricchito (rich text format o rtf): in grado di rappresentare
un ristretto insieme di formattazioni (stile, dimensione, colori)
testo Word (document o doc): in grado di rappresentare un insieme
ampio di formattazioni
Daniela Fogli – Elementi di Informatica e Programmazione
Dec Hx Oct Char
---------------
0 000 NUL (null)
per stampa e visualizzazione
Esistono diversi codici, detti formati che consentono di
rappresentare un insieme più o meno ampio di caratteristiche:
!
Dec Hx Oct Char
---------------
0
Formati dei documenti
In generale interessa rappresentare non solo i caratteri che
compongono un testo ma anche altre caratteristiche di
formattazione quali:
!
Dec Hx Oct Char
---------------
Daniela Fogli – Elementi di Informatica e Programmazione
41
Codifica binaria di testi
!
Dec Hx Oct Char
43
Documenti in formato PDF (Portable Document Format,
formato di documento portabile)
Documenti in formato PS (Postcript) – l’applicazione GSview
(Ghostview) legge il formato postcript
Non limitati alla rappresentazione di testo ma possono
includere anche immagini e disegni
Daniela Fogli – Elementi di Informatica e Programmazione
44