Rappresentazione delle informazioni.

Questo articolo ha lo scopo principale di aiutare tutti gli studenti come noi che hanno bisogno di appunti per studiare o ripassare su quell’argomento specifico, in questo caso la rappresentazione delle informazioni. L’articolo è stato scritto interamente da studenti, spero che vi piaccia!

In un computer si possono rappresentare diversi tipi di informazioni: video, immagini, testo numeri e suono

ECCO COME RAPPRESENTARE UN TESTO IN DIGITALE

Un testo può essere visto come sequenza di caratteri; convertendo in forma numerica ogni carattere si avrà una rappresentazione digitale del testo. Esistono diversi tipi di codici per rappresentare i caratteri; il più diffuso è il codice ASCII.

I caratteri di un testo vengono codificati tramite sequenze di bit, utilizzando un codice di traduzione. 

Uno dei più diffusi codice di caratteri è il Codice ASCII (ASCII è un acronimo e sta  per American Standard Code for Information Interchange). 

È un codice di 7 bit che offre dunque la possibilità di esprimere 128 simboli diversi. In generale  si utilizza il codice ASCII esteso, che utilizza 8 bit, e aggiunge altri 128 simboli specifici della  nazione in cui ci si trova o del sistema operativo che si utilizza. 

In alcuni casi i 7 bit sono utilizzati quando l’informazione viene trasferita da un calcolatore ad  un altro dispositivo, ed allora minimizzare il numero di bit di rappresentazione vuol dire  minimizzare il tempo di trasmissione dell’informazione stessa. 

Il codice ASCII esteso utilizza invece 8 bit (256 caratteri). 

In trasmissione l’ottavo bit funziona come bit di parità per individuare errori. Il valore (0 o 1) del bit di parità è scelto in modo che la sequenza di 1 sia pari. 

Ad esempio: 0 => 4810 => 0 011 00002 

Il codice ASCII, è stato creato dallo ANSI (American National Standardization Institute).

Per comprendere meglio la codifica facciamo un esempio. 

La parola “CIAO” viene rappresentata all’interno di un elaboratore come sequenza di caratteri  codificati in ASCII, come segue: 

CI AO
01000011010010010100000101001111
1°byte2°byte3°byte 4°byte

Le sequenze binarie hanno lo svantaggio d’essere molto lunghe in relazione alla  quantità d’informazione che rappresentano. 

All’interno del computer non si può fare diversamente, ma per gli esseri umani ricordare e  scrivere “0” ed “1” è un’attività tediosa oltre che difficile. Si cerca quindi di rappresentare in  forme più concise tali sequenze, per rendere più snella l’operazione di scrittura. La rappresentazione esadecimale è la più utilizzata.


ECCO COME RAPPRESENTARE UN IMMAGINE

RAPPRESENTAZIONE RASTER

La rappresentazione raster , nella computer grafica, è una tecnica usata per descrivere un’immagine in formato digitale che si contrappone alla grafica vettoriale.

Il termine raster ha origine nella tecnologia televisiva analogica, ovvero dal termine che indica le righe orizzontali

Nella rappresentazione grafica , raster indica la griglia ortogonale di punti che costituisce un’immagine raster. Nella grafica raster l’immagine viene vista come una scacchiera e ad ogni elemento della scacchiera, chiamato pixel, viene associato uno specifico colore. Il colore può essere definito con due tecniche:

  • se l’immagine contiene pochi colori (massimo 256) si crea un elenco dei colori da utilizzare e nella scacchiera viene inserito l’indice che punta allo specifico colore del pixel;
  • se l’immagine contiene molti colori il singolo pixel non definisce l’indice con il quale si punta a una tavolozza di colori, ma direttamente il colore.

Il colore viene definito ad esempio come una combinazione di tre componenti: blu, rosso, verde. Questo non è l’unico modo di definire un colore, esistono altri modi che vengono chiamati spazi di colore, ma nel caso delle immagini generate al computer il sistema RGB (RED Rosso, GREEN Verde, BLUE Blu) è il più diffuso dato che le schede grafiche lo utilizzano nativamente per generare il segnale da visualizzare con il monitor.

I dati raster possono essere memorizzati attraverso tipologie di file che sfruttano algoritmi di compressione diversi, gravando in modo differente sul supporto di memorizzazione. I formati raster più comuni sono i seguenti:

NON COMPRESSI

Questi formati di file hanno richieste di elaborazione minima, non essendo necessari algoritmi di compressione (in fase di scrittura) e decompressione (in fase di lettura), tuttavia, mancando di compressione, risultano particolarmente voluminosi, in termini di spazio occupato su disco (o altro dispositivo di memorizzazione), rispetto agli altri formati:

  • raw
  • bmp

CON COMPRESSIONE LOSSLESS

Le immagini salvate con un algoritmo di compressione dati lossless occupano meno spazio nei dispositivi di memorizzazione, mantenendo inalterata tutta l’informazione originale:

  • png (certe applicazioni permettono anche la scrittura di file png non compressi)
  • tga
  • tiff 
  • gif (per immagini fino a 256 colori)

CON COMPRESSIONE LOSSY

Le immagini memorizzate con un algoritmo di compressione lossy subiscono una perdita di informazione; pertanto questa tecnica non è adatta per salvare le immagini che vengono rielaborate coi programmi di fotoritocco; invece, in virtù delle ridotte dimensioni del file, sono particolarmente indicate per la trasmissione di immagini o per ridurre le dimensioni di un’applicazione o di un prodotto da distribuire.

  • jpeg
  • gif (per immagini con più di 256 colori si ottiene una compressione lossy quando si parte da un’immagine a profondità di colore maggiore e vengono di conseguenza eliminate la maggior parte delle sfumature)

RAPPRESENTAZIONE VETTORIALE

L’immagine vettoriale è una tecnica di rappresentazione dell’immagine, o di un carattere tipografico generato da un computer, in cui gli elementi grafici che la costituiscono sono un insieme di primitive geometriche, alle quali possono essere attribuiti colori e anche sfumature. Questi elementi vengono geometricamente ubicati nel disegno con l’indicazione delle coordinate dei punti di applicazione. È radicalmente diversa dalla grafica raster in quanto nella grafica raster le immagini vengono descritte come una griglia di pixel opportunamente colorati.

DEFINIZIONE MATEMATICA

Sono dette grandezze scalari, quelle che risultano completamente descritte da un numero, che ne rappresenta il valore. Il numero che definisce la misura di uno scalare viene indicato con il termine modulo, o più frequentemente intensità. Sono dette grandezze vettoriali, quelle che per essere definite necessitano, oltre che di un’intensità, anche di una direzione e di un verso. Le grandezze vettoriali sono rappresentate per mezzo di figure geometriche dette vettori, che sono segmenti orientati, simboleggiati tramite una freccia: il modulo (l’intensità) è identificato dalla lunghezza del segmento di freccia, la direzione dalla retta sulla quale esso giace e il verso dalla punta della freccia. Il punto da cui si origina il segmento orientato è detto origine.

APPLICAZIONE NELLA COMPUTER GRAFICA

La grafica vettoriale si basa sulle descrizioni matematiche di primitive geometriche, sui relativi attributi di spessore e colore, nonché sulle operazioni algebriche e le trasformazioni geometriche.



RAPPRESENTAZIONE DEI NUMERI

Passiamo adesso alla codifica di un’altra classe di informazioni di grande rilevanza: i numeri.

Nella codifica ASCII, chiamata anche “CODIFICA DI CARATTERE” (in quanto ad ogni

carattere corrisponde un codice che utilizza un byte), possiamo rappresentare i numeri.

Per esempio 1237 è rappresentato come sequenza di 4 byte:

• un primo byte che contiene la codifica ASCII della cifra 1 (00110001)

• un secondo byte che contiene la codifica ASCII della cifra 2 (00110010)

• un quarto byte che contiene la codifica ASCII della cifra 7 (00110111)

Questa forma di rappresentazione di un numero è idonea per la rappresentazione su video o

per un testo ma non è adatta per effettuare dei calcoli.

Possiamo, quindi, sinteticamente affermare che all’interno del nostro elaboratore abbiamo:

• codifica per i testi -> ASCII

• codifica per i numeri

Dobbiamo innanzi tutto capire quale è la differenza fra la rappresentazione di un numero ed il

suo valore vero. Per esempio, quando pensiamo al numero intero 4 come concetto astratto,

possiamo rappresentare in modi diversi: con le dita di una mano, secondo la nostra codifica di

sistema decimale, in numeri romani.

Esistono quindi almeno tre rappresentazioni per la stessa entità.

In particolare delle tre rappresentazioni c’è n’è una che ha una certa rilevanza ed è quella

usata comunemente da noi umani: il sistema di rappresentazione decimale posizionale.

Sistema Posizionale

Un sistema posizionale è caratterizzato da una base o radice che indicheremo con la lettera r e

da un insieme di cifre di che vanno da 0 a (r-1).

Il sistema decimale ha una base r = 10 che utilizza 10 cifre: 0, 1, 2, …, 9.

Se avessimo r = 3 avremmo le seguenti cifre: 0, 1, 2.

Prima di vedere cosa succede all’interno di un elaboratore, vediamo come è possibile passare,

in un sistema posizionale, dalla rappresentazione di un numero al suo valore o viceversa.

In un sistema di rappresentazione posizionale il generico numero n è rappresentato da una

sequenza di cifre:

N = dm dm-1… d1 d0

ove ciascuna di queste cifre appartiene all’insieme proprio del sistema di numerazione.

Per esempio se fosse N = 1732 il suo valore si otterrebbe tenendo presente che abbiamo 2

unità, 3 decine, 7 centinaia, 1 migliaio e dunque:

N = 1 migliaio + 7 centinaia + 3 decine + 2 unità

Ciò significa che all’entità 2 associamo un peso di 100, all’entità 3 il peso 101, all’entità 7 il

peso 102, e all’entità 1 il peso 103.

Da questa semplice considerazione possiamo ricavare quella che è una regola dei sistemi

di rappresentazione posizionale (posizionale perché ad ogni cifra è associato un ben

determinato peso che dipende dalla posizione della cifra all’interno del numero).

Da quanto detto è possibile dedurre alcune regole:

Assegnato un numero intero non negativo N, questo è rappresentato come sequenza

di n simboli (cifre):

N = dm dm-1… d1 d0

Il valore del numero è:

Nvalore = dn-1 r

n-1 + dn-2 r

n-2 + ….. + d1 r

1 + d0 r

0

essendo: r la base del sistema di numerazione, d le cifre appartenenti all’insieme 0, 1, …, r-1.

Il sistema binario è un sistema avente come base r = 2 e cifre 0 e 1.

Per convertire un numero dal sistema binario al sistema decimale applichiamo la formula del

valore vero.

Ad esempio, dato il numero 1010 in base 2 si vuole trovare il suo valore in base 10:

10102 = 1* 23 + 0* 22 + 1*21 +0* 20= 8 +2 = 1010

Il sistema esadecimale ha una base r = 16 avente come cifre i seguenti simboli: 0, 1, 2, …, 9,

A, B, C, D, E, F

con valori 0, 1, …, 9, 10, 11, 12, 13, 14, 15 rispettivamente.

Ad esempio: 10F216 = 1 * 163 + 0 * 162 + F * 161 + 2* 160

= 1 * 4096 + 15 * 161 + 2*1

= 1*4096 + 15*16 + 2*1 = 4096 + 240 + 2 = 4338(10)

Conversione dalla base 2 alla base 10

Dato un numero nel sistema decimale, vogliamo vedere come questo viene rappresentato

all’interno dell’elaboratore in termini di 0 ed 1, ossia vogliamo effettuare la conversione da

sistema decimale a sistema binario.

In realtà consente di passare dalla rappresentazione in base 10 ad una rappresentazione in

una base r qualunque N10 -> Nr

Come sappiamo il valore di un numero è esprimibile mediante la relazione:

N10 = dn-1 r

n-1 + dn-2 r

n-2 + ….. + d1 r

1 + d0 r

0

mettiamo a fattore comune r (la base) fra le prime n-1 entità:

N10 = r ( dn-1 r

n-2 + dn-2 r

n-3 + … + d1 ) + d0

ponendo la quantità entro le parentesi tonde ( dn-1 r

n-2 + dn-2 r

n-3 + … + d1 ) = Q0, possiamo

scrivere:

N10 = r Q0+ d0

Tale espressione fa immediatamente pensare alla definizione euclidea di divisione, infatti:

N10 è il dividendo r è il divisore Q0 il quoziente d0 il resto.

Sappiamo che il dividendo è uguale al divisore per il quoziente più il resto, ossia:

D = d Q + R

Ne consegue che effettuando la divisione intera fra N10 e il valore decimale della base r cui si

vuole passare (ad esempio 210) otterremo che il resto d0 è la cifra meno significativa nella

rappresentazione in base r.

Si noti che tale cifra è sicuramente compresa nell’insieme 1, 2, …, r – 1 in quanto il resto di

una divisione intera è sicuramente inferiore al divisore r.

Se consideriamo adesso:

Q0 = dn-1 r

n-2 + dn-2 r

n-3 + ….. + d1 = r (dn-1 r

n-3 + dn-2 r

n-4 + … +d2) + d1 = r Q1+ d1

possiamo ancora una volta paragonare Q0 = r Q1+ d1 con la definizione euclidea, avendo

individuato la cifra di posto 1 (d1) nella nuova rappresentazione.

Iterando il procedimento ci fermeremo quando Qi = 0.

Questa forma di rappresentazione di un numero è idonea per la rappresentazione su video o

per un testo ma non è adatta per effettuare dei calcoli.

Possiamo, quindi, sinteticamente affermare che all’interno del nostro elaboratore abbiamo:

• codifica per i testi -> ASCII

• codifica per i numeri

Dobbiamo innanzi tutto capire quale è la differenza fra la rappresentazione di un numero ed il

suo valore vero. Per esempio, quando pensiamo al numero intero 4 come concetto astratto,

possiamo rappresentare in modi diversi: con le dita di una mano, secondo la nostra codifica di

sistema decimale, in numeri romani.

Esistono quindi almeno tre rappresentazioni per la stessa entità.

In particolare delle tre rappresentazioni c’è n’è una che ha una certa rilevanza ed è quella

usata comunemente da noi umani: il sistema di rappresentazione decimale posizionale.

Sistema Posizionale

Un sistema posizionale è caratterizzato da una base o radice che indicheremo con la lettera r e

da un insieme di cifre di che vanno da 0 a (r-1).

Il sistema decimale ha una base r = 10 che utilizza 10 cifre: 0, 1, 2, …, 9.

Se avessimo r = 3 avremmo le seguenti cifre: 0, 1, 2.

Prima di vedere cosa succede all’interno di un elaboratore, vediamo come è possibile passare,

in un sistema posizionale, dalla rappresentazione di un numero al suo valore o viceversa.

In un sistema di rappresentazione posizionale il generico numero n è rappresentato da una

sequenza di cifre:

N = dm dm-1… d1 d0

ove ciascuna di queste cifre appartiene all’insieme proprio del sistema di numerazione.

Per esempio se fosse N = 1732 il suo valore si otterrebbe tenendo presente che abbiamo 2

unità, 3 decine, 7 centinaia, 1 migliaio e dunque:

N = 1 migliaio + 7 centinaia + 3 decine + 2 unità

Ciò significa che all’entità 2 associamo un peso di 100, all’entità 3 il peso 101, all’entità 7 il

peso 102, e all’entità 1 il peso 103.

Da questa semplice considerazione possiamo ricavare quella che è una regola dei sistemi

di rappresentazione posizionale (posizionale perché ad ogni cifra è associato un ben

determinato peso che dipende dalla posizione della cifra all’interno del numero).

Da quanto detto è possibile dedurre alcune regole:

Assegnato un numero intero non negativo N, questo è rappresentato come sequenza

di n simboli (cifre):

N = dm dm-1… d1 d0

Il valore del numero è:

Nvalore = dn-1 r

n-1 + dn-2 r

n-2 + ….. + d1 r

1 + d0 r

0

essendo: r la base del sistema di numerazione, d le cifre appartenenti all’insieme 0, 1, …, r-1.

Il sistema binario è un sistema avente come base r = 2 e cifre 0 e 1.

Per convertire un numero dal sistema binario al sistema decimale applichiamo la formula del

valore vero.

Ad esempio, dato il numero 1010 in base 2 si vuole trovare il suo valore in base 10:

10102 = 1* 23 + 0* 22 + 1*21 +0* 20= 8 +2 = 1010

Il sistema esadecimale ha una base r = 16 avente come cifre i seguenti simboli: 0, 1, 2, …, 9,

A, B, C, D, E, F

con valori 0, 1, …, 9, 10, 11, 12, 13, 14, 15 rispettivamente.

Ad esempio: 10F216 = 1 * 163 + 0 * 162 + F * 161 + 2* 160

= 1 * 4096 + 15 * 161 + 2*1

= 1*4096 + 15*16 + 2*1 = 4096 + 240 + 2 = 4338(10)

Conversione dalla base 2 alla base 10

Dato un numero nel sistema decimale, vogliamo vedere come questo viene rappresentato

all’interno dell’elaboratore in termini di 0 ed 1, ossia vogliamo effettuare la conversione da

sistema decimale a sistema binario.

In realtà consente di passare dalla rappresentazione in base 10 ad una rappresentazione in

una base r qualunque N10 -> Nr

Come sappiamo il valore di un numero è esprimibile mediante la relazione:

N10 = dn-1 r

n-1 + dn-2 r

n-2 + ….. + d1 r

1 + d0 r

0

mettiamo a fattore comune r (la base) fra le prime n-1 entità:

N10 = r ( dn-1 r

n-2 + dn-2 r

n-3 + … + d1 ) + d0

ponendo la quantità entro le parentesi tonde ( dn-1 r

n-2 + dn-2 r

n-3 + … + d1 ) = Q0, possiamo scrivere:

N10 = r Q0+ d0

Operazioni aritmetiche tra numeri binari:
Il calcolatore ha al suo interno dei dispositivi adatti ad effettuare le operazioni elementari sui
numeri
binari: moltiplicazione, somma, divisione e sottrazione.
Dato che il sistema di numerazione binario è posizionale, è evidente che le leggi che regolano
tali operazioni sono identiche a quelle dell’aritmetica dei numeri decimali, tenendo conto della
base del sistema di rappresentazione e del numero di bit che si vuole utilizzare.
Supponiamo d’avere due numeri binari
A = A n-1…A i+1 Ai A i-1…A1A0
B = B n-1…B i+1 Bi Bi-1…B1B0
che utilizzano n bit (se uno dei due ha m < n bit basta aggiungere n – m zeri davanti).Aggiungi blocco

Shift.
Si vuole introdurre una nuova operazione detta di scorrimento o meglio di shift che non trova
un diretto riscontro sulle operazioni che facciamo sul sistema decimale.
Per tale operazione è fondamentale stabilire il numero di bit che si utilizzano.
L’operazione di scorrimento può essere effettuata sia a sinistra sia a destra.


Shift a sinistra.
Se ho scorrimento a sinistra il bit di posto i va ad occupare la posizione i + 1, il bit più
significativo viene eliminato e il bit meno significativo assume valore zero.
Supponiamo di avere il numero 001011 di 6 bit e di effettuare shift a sinistra.

Rappresentazione dei numeri relativi:
Fino ad ora abbiamo trattato numeri interi positivi, ma per le esigenze di calcolo è importante
saper rappresentare numeri relativi.
Esistono almeno 3 modi per rappresentare i numeri relativi:
• 1. rappresentazione in modulo e segno
• 2. rappresentazione in complemento alla base (normalmente chiamata complemento a
2)
• 3. rappresentazione in complemento alla base diminuita (chiamata complemento a 1)
Di fatto tutti gli elaboratori (con pochissime eccezioni) utilizzano, per la rappresentazione dei
numeri relativi, la rappresentazione in complemento a due.

Modulo e segno
È la più facile da intuire ed è quella che ha una corrispondenza diretta con la nostra
usuale rappresentazione dei numeri.
Noi anteponiamo al valore assoluto di un numero un simbolo che denota se esso è positivo o
negativo.
Utilizziamo 2 entità: il modulo ed il segno.
Ad esempio +3 e -3 hanno stesso modulo (3) ma segno differente.
Tenendo presente che il segno deve essere rappresentato in binario possiamo facilmente
intuire come ottenere un numero binario relativo. Stabilito il numero di bit, il bit più
significativo ha valore di segno:
• 1. se 0 il segno è +
• 2. se 1 il segno è –
È evidente che se utilizziamo n bit, uno verrà sacrificato per rappresentare il segno. Si noti che
anche in questo caso è fondamentale stabilire il numero di bit che si utilizzano.
Complemento alla base (Complemento a 2)
Stabilito il numero di bit, supponiamo n, il bit più significativo ha peso: -(2n-1
)

Sulla base di questa considerazione possiamo riscrivere quella formula che, data la sequenza di
bit, mi esprimeva il valore vero del numero:
Nvalore = – dn-1 (2n-1
) + dn-2 2
n-2 + …+ d0 2
0

Data una sequenza di bit che rappresenta un numero relativo in complemento a due posso
ricavare il valore vero del numero sulla base della relazione appena esposta.
Esempio:
Nvalore = 0101(C2) N = -0 *(23

) + 1 * 22 + 0 * 21 + 1 * 20 = 4 + 1 = 5

Nvalore = 1011(C2) N = -1* (23

) + 0 * 22 + 1 * 21 + 1 * 20 = -8 + 2 + 1= -5

Complemento alla base diminuita (Complemento a 1)
Stabilito il numero di bit, supponiamo n, il bit più significativo ha peso: -(2n-1
-1)

Sulla base di questa considerazione possiamo riscrivere quella formula che, data la sequenza di
bit, mi esprimeva il valore vero del numero:
Nvalore = – dn-1 (2n-1

-1) + dn-2 2

n-2 + …+ d0 2
0

Data una sequenza di bit che rappresenta un numero relativo in complemento a 1 posso
ricavare il valore vero del numero sulla base della relazione appena esposta.
Esempio:

Nvalore = 0101(C1) N = -0 *(23

-1) + 1 * 22 + 0 * 21 + 1 * 20 = 4 + 1 = 5

Nvalore = 1011(C1) N = -1* (23

-1) + 0 * 22 + 1 * 21 + 1 * 20 = -7 + 2 + 1= -4

Nella rappresentazione in complemento il primo bit mi dice se il numero è positivo o negativo,
in particolare se il primo bit è 0 il numero è positivo, se il primo bit è 1 il numero è non
positivo (ossia negativo o nullo).

Calcolo dell’opposto
Introduciamo un’operazione unaria detta complementazione o negazione. Essendo il sistema
binario a due cifre (0 e 1) negare un bit vuol dire scambiare 0 con 1 o viceversa. La
complementazione si può applicare a tutti i bit che compongono il numero.
Vediamo com’è possibile calcolare l’opposto di un numero nelle tre rappresentazioni appena
viste.
• Modulo e segno -> Basta complementare il bit di segno.
• Complemento alla base -> si complementano tutti i bit -> al numero ottenuto si
somma 1
• Complemento alla base diminuita -> si complementano tutti i bit.



Dalla stessa categoria

Lascia un commento