Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Agent and Object Technology LabDipartimento di Ingegneria dell’Informazione
Università degli Studi di Parma
AOTAOTLABLAB
Fondamenti di Informatica
Rappresentazione dell’informazione
Michele Tomaiuolo
2
AOTAOTLABLAB Rappresentazione dell’informazione
L’informazione può essere rappresentata in dueforme
Analogica
Digitale (o numerica)
Nella forma analogica una grandezza èrappresentata in modo continuo
Nella forma digitale una grandezza èrappresentata in modo discreto
3
AOTAOTLABLAB Rappresentazione dell’informazione
La gran parte delle grandezze fisiche sono di tipocontinuo
Tuttavia alcuni tipi di informazioni “artificiali” sonodi tipo discreto (ad esempio, un testo scritto)
Per elaborare delle grandezze di tipo continuo conun calcolatore, bisogna utilizzare una lororappresentazione digitale che:È una approssimazione della rappresentazione
analogicaL’errore di approssimazione dipende dalla precisione
della rappresentazione digitale
4
AOTAOTLABLAB Rappresentazione dell’informazione
Un codice è un sistema di simboli che permette larappresentazione dell’informazione
Un codice è definito dai seguenti elementi:Simbolo: che rappresenta l’elemento atomicoAlfabeto: che rappresenta l’insieme dei simboli possibiliStringa: che rappresenta una sequenza possibile di
simboliLinguaggio: l’insieme delle possibili stringhe
Indichiamo con cardinalità del codice il numero dielementi dell’alfabeto
5
AOTAOTLABLAB Codici numerici
Un numero naturale può essere espresso da uncodice (numerazione posizionale) del tipoN = c0 · base0 + c1 · base1 + … + cn · basen
Alcuni codici numerici di uso comune sono:Decimale (base 10; c: 0-9)Binario (base 2; c: 0-1)
• Un calcolatore rappresenta l’informazione digitale attraverso lacodifica binaria
• La codifica binaria rappresenta qualsiasi grandezza digitale conuna sequenza di 0 e 1:▫Ogni elemento di una sequenza binaria viene detto bit▫Una sequenza di 8 bit viene detto byte
Ottale (base 8; c: 0-7)Esadecimale (base 16; c: 0-9, A-F)
6
AOTAOTLABLAB Codifica dell’informazione
Per passare da una rappresentazione con un certocodice ad una con un altro codice è necessariodeterminare delle regole di corrispondenza, dettecodifiche
Una codifica mette in corrispondenza (biunivoca)un simbolo o una stringa appartenente ad uncodice con un simbolo o una stringa di un altrocodice
Un simbolo di un alfabeto più ricco è codificato con unastringa di simboli appartenente all’alfabeto più ridotto
7
AOTAOTLABLAB Codifica dell’informazione
Ad esempio le regole di codifica per passareda una rappresentazione decimale ad unabinaria sono1. Dividere il numero decimale per 2
2. Assegnare il resto come valore del bit
3. Continuare a dividere per 2 ilquoziente…finché non diventa uguale a 0
11000100
2021222324252627
101
012
024
048
1817
11735
n%Bn/Bn
8
AOTAOTLABLAB Numeri naturali
Per rappresentare un numero intero N in formabinaria occorrono K bit, dove K è tale che:
2K > NAd esempio con 3 bit possiamo rappresentare i
numeri naturali da 0 a 7Un calcolatore assegna un numero fisso di bit per
diversi tipi di informazioneNel caso di informazione numerica può succedere
di ottenere valori non rappresentabili:OverflowUnderflow
9
AOTAOTLABLAB Esadecimale (Hex)
0010 1111
0010 1110
0010 1101
0010 1100
0010 1011
0010 1010
0010 1001
0010 1000
0010 0111
0010 0110
0010 0101
0010 0100
0010 0011
0010 0010
0010 0001
0010 0000
Bin
2F
2E
2D
2C
2B
2A
29
28
27
26
25
24
23
22
21
20
Hex
047
046
045
044
043
042
041
040
039
038
037
036
035
034
033
032
Dec
0011 1111
0011 1110
0011 1101
0011 1100
0011 1011
0011 1010
0011 1001
0011 1000
0011 0111
0011 0110
0011 0101
0011 0100
0011 0011
0011 0010
0011 0001
0011 0000
Bin
3F
3E
3D
3C
3B
3A
39
38
37
36
35
34
33
32
31
30
Hex
063
062
061
060
059
058
057
056
055
054
053
052
051
050
049
048
Dec
0001 1111
0001 1110
0001 1101
0001 1100
0001 1011
0001 1010
0001 1001
0001 1000
0001 0111
0001 0110
0001 0101
0001 0100
0001 0011
0001 0010
0001 0001
0001 0000
Bin
1F
1E
1D
1C
1B
1A
19
18
17
16
15
14
13
12
11
10
Hex
031
030
029
028
027
026
025
024
023
022
021
020
019
018
017
016
Dec
0150F0000 1111
0140E0000 1110
0130D0000 1101
0120C0000 1100
0110B0000 1011
0100A0000 1010
009090000 1001
008080000 1000
007070000 0111
006060000 0110
005050000 0101
004040000 0100
003030000 0011
002020000 0010
001010000 0001
000000000 0000
DecHexBin
10
AOTAOTLABLAB Bin ↔ Hex
10100011 01100111 10110111 11100001
F1111
E1110
D1101
C1100
B1011
A1010
91001
81000
70111
60110
50101
40100
30011
20010
10001
00000
HexBin
A3 67 B7 E1
Ciascuna delle 16 diverse combinazioni di 4 bitpossibili (24 = 16)…
corrisponde ad uno dei 16 simboli esadecimali
11
AOTAOTLABLAB Numeri interi
Per rappresentare i numeri interi, bisognarappresentare anche i numeri negativi
Quindi è necessario rappresentare il segno
Occorre un bit aggiuntivo:
Modulo e segno• Il primo bit indica il segno (0 positivo, 1 negativo)
Complemento a due• Un numero negativo si ottiene dall’equivalente numero positivo
1. Complemento il numero (cambiando gli 1 con gli 0 e viceversa)2. Sommo 1
• Anche in questo caso il primo bit indica il segno (0 positivo, 1negativo)
12
AOTAOTLABLAB Numeri interi
Ad esempio avendo un byte, il numero 35 è inbinario:
Il numero –35 in modulo e segno:
Il numero –35 in complemento a due:
11000100
11000101
1
1
0
1
0111011
=
+0111011
1000100 Complemento
13
AOTAOTLABLAB Somma e sottrazione di interi
110101
1 =0101
0 +1101
11 100
1001
1 =010
0 -111
riporto prestito
14
AOTAOTLABLAB Somme con numeri negativi
Sommare 12 e -35 su 8 bit
Modulo e segnoSottrazione tra 35 e 12Cambio di segno
Complemento dueSemplice somma
12
-35
10010111
10111011
00110000
15
AOTAOTLABLAB Moltiplicazione di interi
11110001
1101
1 +11011
1101
1 +1010
0000
1 +101
1011
1 x101
16
AOTAOTLABLAB Divisione di interi
0
110
110
110
001
110
101
110
101
1111000
11101101
17
AOTAOTLABLAB Numeri reali
Un numero reale è una grandezza analogica equindi è rappresentabile solo in modoapprossimato
La parte frazionaria può essere espresso da uncodice del tipo
F = c1 · base-1 + … + cn · base-n
Esistono due forme per rappresentare un numeroreale:
Segno, parte intera, parte decimale (virgola fissa)Segno, mantissa, esponente (virgola mobile)
18
AOTAOTLABLAB Virgola fissa
Il numero è espresso come: r = i,fi e f sono in base pi è la parte interaf è la parte frazionariaUso n1 bit e n2 bit per parte intera e frazionaria
La precisione è costante lungo l’asse reale
0
R
19
AOTAOTLABLAB Virgola mobile
Il numero è espresso come: r = m·bn
m e n sono in base pm è la mantissa (numero frazionario con segno)b è la base della notazione esponenziale (numero
naturale)n è la caratteristica (numero intero)Uso n1 bit e n2 bit per codificare mantissa e caratteristica
La precisione è variabile lungo l’asse reale
0
R
20
AOTAOTLABLAB IEEE 754
118.625 = 1110110.1012 = 1.1101101012 × 26
All’esponente bisogna sommare 28 −1 −1 = 127
21
AOTAOTLABLAB Caratteri
I caratteri possono essere rappresentati da unacodifica numerica
ASCII (American Standard Code for InformationInterchange) utilizza 7 bit (estesa a 8 bit)
L’ASCII codifica:I caratteri alfanumerici (lettere maiuscole e minuscole e
numeri), compreso lo spazioI simboli (punteggiatura, @, #, …)Alcuni caratteri di controllo che non rappresentano
simboli visualizzabili (TAB, LF, CR, BELL, etc.)
22
AOTAOTLABLAB Tabella ASCII
23
AOTAOTLABLAB Interruzione di riga
Unix: LFMultics, Unix and Unix-like systems (GNU/Linux, AIX,
Xenix, Mac OS X, FreeBSD, etc.), BeOS, Amiga, RISCOS, and others
Windows: CR+LFDEC RT-11 and most other early non-Unix, non-IBM
OSes, CP/M, MP/M, DOS, OS/2, Microsoft Windows,Symbian OS
Apple: CRCommodore machines, Apple II family, Mac OS up to
version 9 and OS-9
24
AOTAOTLABLAB Tabella ASCII estesa (CP437)
25
AOTAOTLABLAB ISO 8859
Code page 437 per PC (DOS) in Nord AmericaCaratteri accentatiCaratteri per grafici
Possibile combinare testo in inglese e francese (anche sein Francia si usava CP850), ma non in inglese e greco(CP737)
ISO 8859 – estensioni standard per ASCII ad 8 bit ISO 8859-1 (o Latin1) – Lingue dell’Europa Occidentale ISO 8859-2 – Lingue dell’Europa Orientale ISO 8859-5 – Alfabeto cirillico ISO 8859-15 – Latin1 con simbolo euro (€)
26
AOTAOTLABLAB Unicode
Unicode associa un preciso code-point a ciascuncarattere
Possibile rappresentare milioni di simboli (32 bit)Attualmente comprende >30 sistemi di scritturaProposte per geroglifici e caratteri cuneiformiProposta per Klingon (da Star Trek… rifiutata!)
Primi 256 code-points = Latin1
27
AOTAOTLABLAB Unicode Transformation Format
Una codifica Unicode mappa (un sottinsieme de) icode-points in sequenze di bit, o code values
UTF-8 – codifica con base ad 8-bit ma lunghezzavariabile (1-4 byte), max compatibilità con ASCII
UTF-16 – base a 16-bit, lunghezza variabileUTF-32 – codifica a 32-bit, lunghezza fissa
28
AOTAOTLABLAB Immagini
Digitalizzazione:trasformazione immagine→ sequenza binaria
Una immagine raster èsuddivisa in una griglia dipunti, detti pixel
Ogni pixel è descritto daun codice, che neindividua il colore
29
AOTAOTLABLAB Immagini
Profondità dell’immagine: # bit per rappresentare ilcolore di un pixel (bpp – bit per pixel)1, 2, 8, 12, 16, 24, 32… bitAd esempio, con 8 bit abbiamo 256 (28) possibili coloriIl colore può essere indicizzato da una palette, o diretto
Con il termine di risoluzione si indica il numero dipunti per pollice (dpi - dot per inch)In tipografia le dimensioni dell’immagine (larghezza e
altezza) sono indicate in polliciSpesso (ma non sempre) la risoluzione orizzontale è
uguale a quella verticale
30
AOTAOTLABLAB Modelli di colore
RGB 8 bit: 3 bit per rosso e verde, 2 per
blu 24 bit: 8 bit per rosso, verde e blu 32 bit: 8 bit usati per il canale alpha
YUV Luminosità, crominanza di rosso e
blu Occhio più sensibile alla variazione
della luminosità 6 milioni di coni, 125 di bastoncelli Sistema PAL, MPEG
HSB Tonalità, saturazione e luminosità Spettro del visibile: 400-700nm
31
AOTAOTLABLAB Formati di file grafici
Esistono diversi standard di codifica:BMP: immagine (normalmente) non compressaTIFF, PNG: comprimono l’immagine, per ridurne
l’occupazione, senza deteriorarla (compressionelossless)
JPEG: comprime (molto di più), ma deteriora l’immagine(compressione lossy)
32
AOTAOTLABLAB Formato BMP
FILE INFO HEADER (14) 2 Type Tipo di file (= “BM”) 4 Size Dim. del file (in byte) 4 Reserved Riservato 4 OffBits Offset immagine (in byte)
BITMAP INFO HEADER (40) 4 Size Dimensione struttura 4 Width Larghezza immagine 4 Height Altezza immagine 2 Planes Piani (non usato) 2 BitCount N. bit per pixel 4 Compression 0 se non compresso 4 SizeImage 0 se non compresso 4 XPelsPerMeter Risoluzione orizz. ppm 4 YPelsPerMeter Risoluzione vert. ppm 4 ClrUsed # colori in palette 4 ClrImportant # colori importanti
Palette (RGBQUAD) Blue, Green, Red, Reserved (4 byte)
33
AOTAOTLABLAB Grafica vettoriale
Immagine descrittamediante un insieme diprimitive geometriche Punti, linee, curve e poligoni Attribuiti colori, sfumature ecc.
Vantaggi Qualità, a diverse risoluzioni Compressione dati Gestione modifiche
Svantaggi Meno intuitiva per molti utenti Risorse necessarie
possibilmente onerose, nondefinibili a priori
34
AOTAOTLABLAB Grafica vettoriale
ApplicazioniEditoria (DTP), video-editing, architettura, ingegneria, grafica
tridimensionale (CAD)Font vettoriali: possibile variare dimensione caratteri senza perdere
definizione
Formati esistentiEPS, PDF – Encapsulated PostScript, Portable Document FormatWMF – Windows MetafileDXF – AutoCADCDR – CorelDRAWSWF – Shockwave FlashSVG – Scalable Vector Graphics
35
AOTAOTLABLAB Audio digitale
Suono Onde meccaniche
di compressione e rarefazione
Spettro udibile L’orecchio umano può percepire
suoni con frequenza compresatra 20 e 20 000 Hz
Discretizzazione Nel tempo:
campionamento (sampling) Nei valori delle ampiezze:
quantizzazione (quantizing) Qualità CD: 44 kHz, 16bit
36
AOTAOTLABLAB Formato WAV
37
AOTAOTLABLAB Algebra di Boole
L’algebra di Boole è un formalismo che opera suvariabili (dette variabili booleane)
Le variabili booleane possono assume due solivalori:VeroFalso
Sulle variabili booleane è possibile definire dellefunzioni (dette funzioni booleane)
Anche le funzioni booleane possono assumeresolo i due soli valori vero e falso
38
AOTAOTLABLAB Funzioni booleane
Le funzioni booleane possono essere definitetramite le tabelle di verità
1110
1101
0100
1011
1
1
0
0
X2
1
0
1
0
X1 FX3
11
00
00
10
39
AOTAOTLABLAB Funzioni booleane
Una funzione ècompletamente specificata seper tutte le combinazioni dellevariabili il suo valore èdeterminato
Una funzione non ècompletamente specificata sea una o più combinazioni dellesue variabili non corrispondealcun valore della funzione
1001
0010
0100
1011
1101
1
1
0
X2
111
1
0
X3
0
0
X1 F
-
1
40
AOTAOTLABLAB Espressioni booleane
L’algebra di Boole si basa su un insieme dioperatori:And (indicato in genere dal simbolo . )Or (indicato in genere dal simbolo + )
Not (indicato in genere dal simbolo - )Xor (indicato in genere dal simbolo )Nand (indicato in genere dal simbolo )Nor (indicato in genere dal simbolo )
Questi operatori possono essere combinati inespressioni che rappresentano funzioni booleane__
F(x1, x2, x3) = x1·x2 + x3
41
AOTAOTLABLAB And - Or - Not - Xor
1
0
X Not
0
1
1
0
1
0
X1 OrX2
11
11
10
00
1
0
1
0
X1 AndX2
11
01
00
00
1
0
1
0
X1 XorX2
01
11
10
00
42
AOTAOTLABLAB Nand - Nor
1
0
1
0
X1 NorX2
01
01
00
10
1
0
1
0
X1 NandX2
01
11
10
10
43
AOTAOTLABLAB Proprietà degli operatori
A + A = 1A.A = 0Inverso
A = AComplemento
(A + B) . (B + C) . (C + A) = (A + B) . (C + A)A . B + B . C + C . A = A . B + C . A
Del consenso
A + (A . B) = AA . (A + B) = AAssorbimento
A + 1 = 1A . 0 = 0Del limite
A + 0 = AA . 1 = AIdentità
A + A = AA . A = AIdempotenza
A. (B + C) = (A . B) + (A . C)A + (B . C) = (A + B) . (A + C)Distributiva
(A + B) + C = A + (B + C)(A . B) . C = A . (B . C)Associativa
A + B = B + AA . B = B . ACommutativa
OrAndProprietà
_ _
_ __ _
=
44
AOTAOTLABLAB Leggi di De Morgan
_____________X1
+ X2+ … + Xn = X1
. X2. … . Xn
______________ __ __ __X1
+ X2+ … + Xn = X1
. X2. … . Xn
______________X1
. X2. … . Xn = X1 + X2 + … + Xn
____________ __ __ __X1
. X2. … . Xn = X1 + X2 + … + Xn
__ __ __
__ __ __
45
AOTAOTLABLAB Forme canoniche
Un' espressione del tipo:
è chiamata espressione canonicadi tipo SP (Somma di Prodotti)
Un' espressione del tipo:
è chiamata espressione canonicadi tipo PS (Prodotto di Somme)
1110
1101
0100
1011
1
1
0
0
X2
1
0
1
0
X1 FX3
11
00
00
10
_ _ _ _ _ _F(x1,x2,x3) = (x1x2x3) + (x1x2x3) + (x1x2x3) + (x1x2x3) + (x1x2x3)
_ _ _F(x1,x2,x3) = (x1+x2+x3) (x1+x2+x3) (x1+x2+x3)
46
AOTAOTLABLAB Mappe di Karnaugh
Una Mappa di Karnaugh per n variabili è una tabellarettangolare di 2n caselle
47
AOTAOTLABLAB Mappe di Karnaugh
Le mappe di Karnaugh sono uno strumento moltoutile per rappresentare e minimizzare funzionilogiche quando il numero di variabili non è troppogrosso (massimo 6 o 7)
In una mappa di Karnaugh celle adiacenticorrispondono a configurazioni in cui cambia ilvalore di una sola variabile (codice Gray)
Inoltre si ha:Xi
. P + Xi. P = (Xi + Xi) . P = P
Quindi per minimizzare una funzione bastaindividuare le caselle adiacenti (per cui la funzionevale 1) e quindi il gruppo invariante P
__
48
AOTAOTLABLAB Mappe di Karnaugh
F(A, B, C, D) = BCD + BD + CD
000010
111111
011001
100100
10110100
_ _ _
ABCD
49
AOTAOTLABLAB Mappe di Karnaugh
F(A, B, C) = B + C
11111
01100
10110100ABC
50
AOTAOTLABLAB Mappe di Karnaugh
F(A, B, C, D) = D
111110
000011
000001
111100
10110100AB
CD
_
51
AOTAOTLABLAB Mappe di Karnaugh
F(A, B, C, D) = BD
100110
000011
000001
100100
10110100AB
CD
__
52
AOTAOTLABLAB Programmable logic device
X
X
XX
A
B
F
AB + AB
53
AOTAOTLABLAB SoP con porte NAND
Più facile implementare circuiti NAND (e NOR)Rispetto ad AND e OR
AB + CD =(Complemento)
AB + CD =(De Morgan)
AB . CD
54
AOTAOTLABLAB Programmable logic array: full adder
55
AOTAOTLABLAB Sommatore a 4 bit