Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Codifica e Formati di Dati Digitali, Dispense di Fondamenti di informatica

Una panoramica dettagliata sui principali aspetti relativi alla codifica e ai formati di dati digitali. Vengono trattati argomenti come i dati numerici, gli organismi di standardizzazione, la codifica di immagini (raster e vettoriale), i formati di file multimediali (gif, jpeg), l'architettura funzionale di una cpu (alu, registri, bus), i tipi di memoria (cd-rom, dvd, nastri magnetici), i connettori video, gli acceleratori grafici e i dispositivi di stampa. Inoltre, vengono descritti i principali sistemi operativi (cp/m, ms-dos, os/2, windows, x-windows) e gli standard di comunicazione seriale (rs-423) e parallela (centronics, ieee-488, scsi). Questo documento rappresenta una risorsa preziosa per studenti universitari e professionisti che desiderano approfondire la comprensione dei concetti fondamentali relativi all'elaborazione digitale delle informazioni.

Tipologia: Dispense

Pre 2010

In vendita dal 24/10/2024

aldo-giordano-4
aldo-giordano-4 🇮🇹

4.9

(9)

615 documenti

1 / 100

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Politecnico di Torino
FONDAMENTI DI INFORMATICA
quaderno di testo
Antonio Lioy
Anno Accademico 2002-2003
Riproduzione totale o parziale vietata senza il consenso scritto dell’autore.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Anteprima parziale del testo

Scarica Codifica e Formati di Dati Digitali e più Dispense in PDF di Fondamenti di informatica solo su Docsity!

Politecnico di Torino

FONDAMENTI DI INFORMATICA

quaderno di testo

Antonio Lioy

Anno Accademico 2002-

Riproduzione totale o parziale vietata senza il consenso scritto dell’autore.

PREFAZIONE

Il presente volumetto raccoglie in forma cartacea il materiale elettronico sviluppato

per una serie di corsi di Fondamenti di Informatica del Politecnico di Torino.

Più che costituire un “libro di testo”, questo vuole essere una sorta di “quaderno di

testo”, in cui gli studenti trovano pre-organizzata una gran parte del materiale

presentato in aula: definizioni, schemi, formule, grafici, tabelle. Tradizionalmente

questo richiede molto tempo per essere trascritto sui quaderni, senza contare i

possibili e probabili errori di trascrizione. Grazie al “quaderno di testo” lo studente

può concentrarsi maggiormente sui concetti che vengono esposti e sul filo logico che

lega i vari argomenti tra di loro. Nella speranza che questo materiale possa essere utile

al maggior numero possibile di studenti, ho scelto di contenere al massimo il costo

della pubblicazione ed ho organizzato il materiale in un formato con ampi spazi

bianchi per gli appunti personali.

Correzioni e suggerimenti per il miglioramento di questo quaderno possono essermi

indirizzati presso il Dipartimento di Automatica e Informatica, oppure inviatimi

tramite posta elettronica all’indirizzo [email protected]

Torino, Settembre 2002

L’autore

Sistemi di Elaborazione delle Informazioni cap. I

L’elaboratore elettronico

input

(dati)

output

(risultati)

(elaborazione)

Problematiche

  • codifica dei dati (in un formato comprensibile all’elaboratore)
  • codifica degli ordini (sequenza di operazioni che compongono l’elaborazione)
  • decodifica dei risultati (in un formato comprensibile agli umani)

Hardware

Definizione: l’insieme delle apparecchiature (elettroniche, meccaniche, ecc.) che costituiscono fisicamente il sistema di elaborazione.

Software

Definizione: l’insieme dei programmi e dei dati che permettono lo svolgimento delle funzioni di elaborazione

Istruzioni e programmi

Un’ istruzione è la specifica di una operazione che può essere svolta da un elaboratore.

Un programma è un insieme ordinato di istruzioni (non è necessariamente una sequenza!)

Cenni storici

Problema: effettuare in modo rapido e preciso calcoli matematici complessi****.

Soluzioni primitive:

  • abaco (2000 A.C.)
  • tavole dei logaritmi (1600)
  • olio di gomito!

Sistemi di Elaborazione delle Informazioni cap. I

Il calcolo meccanico

Pascal

Leibniz

+ − × :

Babbage

Difference Engine

Babbage

Analytical Engine

??

L’era elettromeccanica

1890: censimento USA con lettura elettrica di schede perforate

1896: Hollerith fonda la Tabulating Machine Corporation (1924 = IBM)

1944: Aiken costruisce il Mark I

L’era elettronica

1946: ENIAC (Eckert e Mauchly, Univ. di Pennsylvania)18000 tubi a vuoto + 1500 relais

1951: UNIVAC (Eckert e Mauchly, E.&M. Computer Corporation)primo computer programmabile commerciale

ENIAC

UNIVAC Le generazioni informatiche

1942-’57, 1 a^ gen. = tubi a vuoto 1958-’63, 2 a^ gen. = transistori 1964-’80, 3 a^ gen. = circuiti integrati 1980-oggi, 4 a^ gen. = circuiti VLSI (futuro) 5 a^ gen. =?

Elaborazione dell’informazione

numerica

x^2 + y 2 = 9 raggio?

costo = 100 IVA = 19% totale?

raggio = 3

totale = 119

Come contiamo?

Sistema di numerazione del mondo occidentale ( sistema arabo ):

  • decimale
  • posizionale

Sistemi di numerazione

Non posizionali:

  • numeri romani (es. V, L, D)
  • operazioni aritmetiche difficili

Posizionali:

  • arabo (decimale)
  • maya (ventesimale)

Sistema di numerazione

posizionale in base B

Caratteristiche:

  • cifre: { 0, 1, 2, ..., B-1 }
  • peso della cifra i -esima: B i
  • rappresentazione (numeri naturali)

A = ∑^ ⋅

a i B

i

N

i

0

Il sistema binario

  • base: 2
  • cifre: { 0, 1 }

Esempio: 101 2 = 1 ⋅ 22 + 0 ⋅ 21 + 1 ⋅ 20 = 1 ⋅ 4 + 1 ⋅ 1 = 5 10

Alcuni numeri binari

Alcune potenze di due

BIT (BInary digIT) 0 1

BYTE = otto bit 00110110

WORD = n byte 00001111 10101010

Terminologia

Terminologia

LSB

Least Significant Bit

MSB

Most Significant Bit

Multipli binari

Si usano le potenze di due invece di quelle di dieci:

chilo K 210 ~ un migliaio mega M 220 ~ un milione giga G 2 30 ~ un miliardo tera T 240 ~ mille miliardi

Il sistema ottale

  • base: 8
  • cifre: { 0, 1, 2, 3, 4, 5, 6, 7 }
  • utile per scrivere in modo compatto i numeri binari ( 3:1 ) ( 1 0 1 1 1 0 0 1 ) (^2)

( 2 7 1 ) (^8)

Il sistema esadecimale

  • base: 16
  • cifre: { 0, 1, ..., 9, A, B, C, D, E, F }
  • utile per scrivere in modo compatto i numeri binari ( 4:1 ) ( 1 0 1 1 1 0 0 1 ) (^2)

( B 9 ) 16

Da decimale a binario

A 2 = aN-1⋅ 2 N-1^ + ... + a 2 ⋅ 22 + a 1 ⋅ 21 + a 0

= 2 (aN-1⋅ 2 N-2^ + ... + a 2 ⋅ 21 + a 1 ) + a 0 = 2 [ 2 (aN-1⋅ 2 N-3^ + ... + a 2 ) + a 1 ] + a 0

A 10 = 2 ⋅ Q 0 + R 0

= 2 ⋅ ( 2 ⋅ Q 1 + R 1 ) + R 0

Da decimale a binario

Dal confronto tra l’espressione di A come numero binario e come risultato della divisione intera per due si ottiene: a 0 = R 0 a 1 = R 1 ... ai = Ri

Da decimale a binario

Regola pratica:

  • divisioni successive per due
  • si prendono i resti in ordine inverso 13 6 3 1 0 quozienti 1 0 1 1 resti

Operazioni aritmetiche

2 milioni di stipendio, meno 1 milione di affitto, meno 200mila di benzina, meno ...

Somma in binario

Regole base: 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 ( carry = 1 )

Somma in binario

Si effettuano le somme parziali tra i bit dello stesso peso, propagando gli eventuali riporti: 1 1 0 1 1 0 + 0 1 1 1 = 1 1 0 1

Overflow

Si usa il termine overflow per indicare l’errore che si verifica in un sistema di calcolo automatico quando il risultato di un’operazione non è rappresentabile con la medesima codifica e numero di bit degli operandi.

Overflow

Nella somma in binario puro si ha overflow quando:

  • si lavora con numero fisso di bit
  • si ha carry sul MSB

Overflow - esempio

Ipotesi : operazioni su numeri da 4 bit codificati in binario puro

overflow → 10011

Sottrazione in binario

Regole base: 0 - 0 = 0 0 - 1 = 1 ( borrow = 1 ) 1 - 0 = 1 1 - 1 = 0

Sottrazione in binario

Si effettuano le differenze parziali tra i bit dello stesso peso, propagando gli eventuali prestiti: 0 2 0 1 2 1 0 0 1 - 0 1 1 1 = 0 0 1 0

Overflow

Nella sottrazione in binario puro si ha overflow quando:

  • si lavora con numero fisso di bit
  • si ha borrow sul MSB

I numeri relativi

+ 32 o^ C

-5 oC

I numeri con segno

Il segno dei numeri può essere solo di due tipi: positivo ( + ) negativo ( - ) E’ quindi facile rappresentarlo in binario ... ma non sempre la soluzione più semplice è quella migliore!

Modulo e segno

  • un bit per il segno ( 0 ↔ +, 1↔ -)
  • N-1 bit per il valore assoluto (anche detto modulo )

S modulo

Modulo e segno: esempi

Usando una codifica su quattro bit:

  • 3 10 → (^0011) M&S − 310 → (^1011) M&S (^0000) M&S → + 0 10 (^1000) M&S → − (^010)

Modulo e segno

Svantaggi:

  • doppio zero (+ 0, - 0)
  • operazioni complesse
  • es. somma A+B A > 0 A < 0 B > 0 A + B B - |A| B < 0 A - |B| - ( |A| + |B| )

Modulo e segno: limiti

In una rappresentazione su N bit:

  • ( 2N-1^ - 1 ) ≤ x ≤ + ( 2N-1^ - 1 )

Esempi:

  • 8 bit = [ -127 ... +127 ]
  • 16 bit = [ -32,767 ... +32,767 ]

Complemento a uno

(operazione)

Considerando numeri binari da N bit, si definisce complemento a uno di un numero A la quantità:

A = 2N^ - 1 - A

Viene anche detto semplicemente complemento.

Complemento a uno

Regola pratica: il complemento a uno di un numero binario A si ottiene cambiando il valore di tutti i suoi bit

Esempio: A = 1011 → A = 0100

Complemento a due

(operazione)

Considerando numeri binari da N bit, si definisce complemento a due di un numero A la quantità:

A = 2N^ - A

Complemento a due

Regola pratica: il complemento a due di un numero binario A si ottiene sommando uno al suo complemento

Esempio: A = 1011, A=0100 → A = 0101

Complemento a due (bis)

Regola pratica (bis):

il complemento a due di un numero binario A si ottiene partendo dal LSB e copiando tutti i bit sino al primo “1” incluso e complementando tutti i bit successivi.

Esempio:

A = 10110 → A = 01010

Codifica in complemento a due

Per rappresentare numeri relativi:

( A ≥ 0 ) ACA2 = 0 A 2

( A < 0 ) ACA2 = | A | 2

Così facendo, l’MSB indica sempre il segno ( 0 = +, 1 = − )

Shift in complemento a due

  • quando si effettua lo shift a destra di un numero in complemento a due, si fa sempre lo shift aritmetico
  • esempio (CA2 su 4 bit): -5 » 1 1011 » 1 = 1101 (con troncamento) verifica: 1101CA2 = 0011 = -3 10

Overflow in CA

Operandi con segno discorde : non si può mai verificare overflow Operandi con segno concorde : c’è overflow quando il risultato ha segno discorde In ogni caso, si trascura sempre il carry sul MSB

Overflow in CA

overflow OK

I numeri razionali

(o frazionari)

FONDAMENTI DI INFORMATICA PROMOZIONI

3 prove 2%

2 prove 15%

1 prova 83%

Numeri razionali

Sono il risultato di una divisione tra numeri interi.

Rappresentati in forma frazionaria oppure con:

  • parte intera
  • parte frazionaria

Ad esempio:

15 / 4 = 3.

Conversione in binario della parte

frazionaria di un numero

A = 0, ...

= a-1 2 -1^ + a-2 2 -2^ + ... 2 × A = a-1 20 + a-2 2 -1^ + a-3 2 -2^ + ... = a-1 + ( a-2 2 -1^ + a-3 2 -2^ + ... ) Si ottiene quindi: a (^) -1 = int ( 2 × A ) a-2 = int ( 2 × fraz (2×A) ) a-3 = int ( ... )

Parte frazionaria

Regola pratica:

  • moltiplicazioni successive per due
  • si considerano le parti intere .25 .5. 0 1

Numeri non rappresentabili

Esistono numeri decimali frazionari finiti non rappresentabili esattamente in binario (numero infinito di cifre): .4 .8 .6 .2. ... 0 1 1 0 ...

Problema: quante cifre si considerano?

Errore assoluto ( ε )

Dato un numero A composto da N cifre, l’errore assoluto della sua rappresentazione è la quantità - non nulla - più piccola (in valore assoluto) rappresentabile con N cifre.

Errore assoluto - esempi

Qualunque sia la base ed il numero di cifre N, la precisione assoluta dei numeri interi è sempre 1. La precisione assoluta dei numeri frazionari dipende dal numero di cifre usate:

  • es. 0.5 10 ε = 0.1 10
  • es. 0.50 10 ε = 0.01 10

Errore relativo ( η )

Dato un numero A composto da N cifre, l’errore relativo della sua rappresentazione è il rapporto tra l’errore assoluto ed il valore assoluto del numero A

η

ε

| A |

Errore relativo - esempi

L’errore relativo della rappresentazione di qualunque numero (sia intero che frazionario) è variabile e dipende sia dal valore che dal numero di cifre usato per la rappresentazione.

  • es. 100 ε = 1 η = 1 %
  • es. 200 ε = 1 η = 0.5 %

Rappresentazione fixed-point

Si usa un numero fisso di bit per la parte intera e per quella frazionaria (e non si rappresenta la virgola!)

Ad esempio (4 + 4 bit, binario puro):

15.9375 = 11111111 0.0625 = 00000001

virgola sottintesa

Fixed-point

  • operandi allineati = operazioni facili
  • precisione assoluta fissa
  • piccolo intervallo di valori
  • divisione tra parte intera e parte frazionaria fissa e non adatta a tutti i campi applicativi
  • precisione relativa variabile Il fixed-point viene quindi usato raramente nei sistemi general-purpose, mentre è più frequente nei sistemi special-purpose.

Codifica fixed-point in

complemento a due

  • si consideri il numero A = I.F ove I = int ( A ) e F = fraz ( A )
  • se A ≥ 0 → ACA2 = 0 I 2. F 2
  • se A < 0 → ACA2 = I 2. F 2 + 1LSB

Limiti della codifica

fixed-point CA

Con N bit per la parte intera e F bit per la parte frazionaria:

  • frazmax = 1/2 + 1/4 + ... + 1/2F
  • max = + ( 2N–1^ – 1 ). frazmax
  • min = – 2N–1^. 0
  • risoluzione (o step ) = 1/2 F

Limiti della codifica

fixed-point CA

Esempio (fixed-point, CA2, 3 I + 2 F):

  • max = 011.11 = + 3. 75
  • min = 100.00 = – 4. 0
  • step = 000.01 = 0.
  • valori –4.0 –3.75 –3.5 –3. –3.0 –2.75 –2.... ......... +2. +3.0 +3.25 +3.5 +3.

Rappresentazione

floating-point

Si usa sempre il formato esponenziale: N = mantissa ⋅ base esponente

Vari formati decimali:

  • esempi di possibili codifiche per N=
  • standard 3.5 ⋅ 10 4 3.5E+
  • scientifico 0.35 ⋅ 10 5 0.35E+
  • ingegneristico 35 ⋅ 10 3 35E+

Floating-point

  • grande intervallo di valori
  • errore relativo fisso
  • operandi non allineati → operazioni complesse
  • errore assoluto variabile

Formato IEEE-

Standard IEEE per il floating-point:

  • mantissa nella forma “1, ...”
  • “1,” sottinteso
  • mantissa in modulo e segno
  • base 2
  • esponente in codice eccesso K

Codice eccesso K

Si rappresentano i numeri interi relativi sommando a ciascuno una quantità fissa K ( offset o bias ).

Esempio (codice eccesso 4):

  • 4 ... 0 0 ... 4
  • 3 ... 1 + 1 ... 5
  • 2 ... 2 + 2 ... 6
  • 1 ... 3 + 3 ... 7

Singola precisione (SP)

IEEE-754 usa 32 bit con l’esponente in codice eccesso 127:

23 bit 8 bit

segno mantissaesponente

1 bit

Doppia precisione (DP)

IEEE-754 usa 64 bit con l’esponente in codice eccesso 1023:

52 bit 11 bit

segno mantissaesponente

1 bit

valore

± 0 non normalizzato ±∞ NaN (Not a Number)

max max

E

M

IEEE-

Codifiche speciali