Caricare documenti e articoli online 
INFtub.com è un sito progettato per cercare i documenti in vari tipi di file e il caricamento di articoli online.


 
Non ricordi la password?  ››  Iscriviti gratis
 

FONDAMENTI DI INFORMATICA I - Considerazione sulla codifica dell'informazione

informatica








FONDAMENTI DI INFORMATICA I



RAPPRESENTAZIONE DELLE INFORMAZIONI NEI SISTEMI DIGITALI



Considerazione sulla

codifica dell'informazione


Siamo abituati a considerare la disponibilità di un numero "illimitato" (o comunque sufficiente) di elementi per rappresentare le informazioni.




Esempio 1




Numeri decimali e operazioni aritmetiche: siamo abituati ad usare tutte le cifre necessarie senza particolari limiti.




Esempio 2


Informazioni da rappresentare: parole della lingua italiana

alfabeto: 21 lettere

lunghezza delle parole non limitata (si può ipotizzare un limite ragionevole Hp: Lmax=26)

alcune sequenze di lettere non hanno significato


Vocabolario italiano

numero di parole esistenti è << 2126

non sono esaurite tutte le sequenze possibili (configurazioni) di lettere

l'introduzione di nuove parole non richiede di aumentare la lunghezza e/o di aumentare il numero di simboli



Codifica dell'informazione


Le informazioni che consideriamo devono essere rappresentate e elaborate da una macchina (calcolatore elettronico).


Aspetto fondamentale:


il numero di elementi "fisici" (elementi di memoria, collegamenti ....) disponibile per contenere la rappresentazione di ogni informazione è finito.


Poiché ogni elemento fisico "contiene" il valore di una cifra binaria, in ogni componente di un calcolatore il numero di cifre binarie disponibili per rappresentare l'informazione è finito. Quindi il numero di informazioni distinte rappresentabili è finito.


Nasce quindi il concetto di non rappresentabilità di informazioni che richiedono un numero di cifre maggiore di quelle disponibili.



Sistema elettronico digitale


Calcolatore:

sistema elettronico costituito da circuiti digitali


In un sistema digitale le informazioni vengono rappresentate, elaborate e trasmesse mediante grandezze fisiche (segnali) che si considerano assumere solo valori discreti. Ogni valore è associato a una cifra (digit) della rappresentazione.


Al contrario, in un sistema analogico le informazioni vengono rappresentate (elaborate e trasmesse) mediante grandezze che possono assumere con continuità tutti gli infiniti valori in un dato intervallo.


Grandezze fisiche utilizzate in un sistema digitale per la rappresentazione dell'informazione:

segnali elettrici (tensione, corrente)

grandezze di tipo magnetico (stato di magnetizzazione)

segnali ottici


Il comportamento fisico dei sistemi di elaborazione riproduce le operazioni di elaborazione e trasmissione delle informazioni rappresentate con le grandezze fisiche (segnali). Si ha quindi una corrispondenza biunivoca tra le operazioni sulle informazioni e le trasformazioni fisiche (operate dai circuiti) sui segnali che le rappresentano.



Rappresentazione delle informazioni con segnali digitali binari


La grandezza fisica che si utilizza (segnale elettrico di tensione) assume solo due valori discreti (binaria)



L'elemento tecnologico base per la realizzazione di circuiti digitali è il transistore il cui funzionamento può essere modellato (in modo molto semplice) come il funzionamento di un interruttore (aperto o chiuso), quindi con due stati fisici, cui corrispondono 2 opportune tensioni (in genere 0V e 5V)..





BIT (binary digit) = cifra binaria. (unità di informazione elementare)

Un bit può assumere due valori che possono essere associati ai simboli:


L(ow)

H(igh)

aspetto fisico del segnale



aspetto aritmetico

false

true

aspetto logico


Terminologia e "unità di misura"


1 cifra

= bit


1 Kilo



8 bit

= byte


1 Mega



16 bit

= word (parola)


1 Giga



32 bit

= double word





64 bit

= quad word







Rappresentazione binaria


Nella rappresentazione binaria l'alfabeto (l'insieme dei simboli utilizzabili) è costituito dalle cifre 0 e 1.


Un'informazione è rappresentabile da una sequenza di cifre.


Quante sono le informazioni distinte rappresentabili?


se sono disponibili N cifre binarie si possono avere 2N configurazioni diverse e quindi rappresentare al più 2N informazioni distinte


se si devono rappresentare M informazioni distinte sono necessarie N = log2M cifre binarie



Quindi a seconda della cardinalità (M) dell'insieme di valori dell'inform 252j94c azione da rappresentare con una certa variabile, quest'ultima dovrà essere basata su un opportuno numero (N) di bit come indicato dalla relazione precedente.



Rappresentazione di valori numerici


Le classi di valori numerici che si possono rappresentare sono le seguenti:

Numeri naturali

Numeri interi (relativi)

Numeri razionali


Rappresentazione di numeri naturali:

codifica pesata (binario naturale)


La codifica si basa sulla notazione posizionale o "pesata" che adottiamo usualmente per i numeri codificati in decimale.


Terminologia:

Base:   B (B=2, B=10, B=3, B=16)

Valori delle cifre: 0 .. B-1

Notazione posizionale: Bk (2k, 10k)


Nella notazione posizionale, in qualunque base, il valore numerico rappresentato da una cifra dipende

dal valore della cifra

dalla posizione della cifra nel numero


Esempio in base 10

P10= 12110 = 1


Data una base B e un numero di cifre disponibili N

i numeri naturali (interi 0) rappresentabili sono

P BN-1



Codifica pesata dei numeri naturali

in base 2



P2= bN-1 2N-1+ bN-2 2N-2+......+ b2 22+ b1 21+ b0 20


bit più significativo:   bN-1

bit meno significativo:    b0


Ad esempio:


numero di bit disponibili N=3

i valori numerici rappresentabili sono

P cioè 0 P


decimale

binario

valore



























Codifica pesata dei numeri naturali in base 2


numero di bit disponibili N=5 i valori numerici P rappresentabili sono 0 P cioè 0 P


decimale

binario

valore






































gli zeri davanti "non contano" ma ci devono essere.


Siamo abituati a non scrivere gli zeri non significativi, lasciandoli impliciti.

Invece i segnali fisici possono solo indicare i valori 0 o 1 per tutti i bit usati per rappresentare un valore numerico, e non possono "sparire".

Per una certa informazione si adotta un numero fisso di bit, che deve essere stabilito a priori, e non una quantità che dipende dal valore di volta in volta rappresentato.


N=6 0 - 63

N=7 0 - 127

N=8 0 - 255

N=10  0 - 1023 (1 K)

N=16  0 - 26 0 - 64.000 (64 K)

N=32  0 - 22 0 - 4.000.000.000 (4 G)



Conversione della rappresentazione pesata


Conversione =

passaggio dalla rappresentazione pesata di un numero naturale da una base b ad una base B.


Le regole di conversione si basano:


sull'uguaglianza dei valori numerici, cioè indipendentemente dalla base di rappresentazione il valore del numero è lo stesso


sul concetto di notazione pesata



Consideriamo i casi di conversione da binario a decimale e da decimale a binario di numeri naturali



Conversione binario decimale (numeri naturali): è molto semplice


P2=111102  =

= 16 + 8 + 4 + 2 + 0 = 3010



Conversione decimale binario

di numeri naturali


Algoritmo di conversione:


si considera l'uguaglianza P = Q b + R, dove


P è il numero decimale da convertire

Q è il risultato della divisione intera per la base
b (=2)

R è il resto della divisione intera per la base b
(0
R b-1)


si eseguono ripetute divisioni per la base b = 2 operando in base B = 10.
Le divisioni considerano come valore da dividere, di volta in volta, il Q ottenuto al passo precedente. Il procedimento termina quando il valore da dividere è pari a 0.


Il numero di iterazioni necessarie per arrivare al termine del procedimento determina il numero minimo di bit necessari per rappresentare quel particolare numero in binario.



Conversione decimale binario

di numeri naturali


Esempio: 37 in base 2.


P


R0


Q0


R1


Q1


R2


Q2


R3


Q3


R4


Q4


R5


Q5







Valgono le seguenti uguaglianze:


P=Q0b+R0 = (Q1b+R1)b+R0 = Q1b2+R1b1+R0b0=.....


Quindi R0 R1.... sono le cifre della rappresentazione binaria a partire dal bit meno significativo.


Nell'esempio, il numero minimo di bit è 6.

R5 rappresenta il bit più significativo.

Continuando il procedimento si otterrebbero degli 0 in posizione più significativa.



Conversione decimale binario

della parte frazionaria


Rappresentazione della parte frazionaria:


P = 0.p-1p-2p-3


Nella notazione posizionale per la parte frazionaria il valore del numero rappresentato è dato da:


P10  =0 + d-1 10-1+d-2 10-2+......(d-1 ... cifre decimali)


P2 =0 + b-1 2-1+b-2 2-2 +b-3 2-3 + ...(b-1 ... cifre binarie)


La conversione da binario a decimale è come quella vista per i numeri naturali, ma con le potenze della base negative.


Per la conversione da decimale a binario l'algoritmo di conversione è "duale" rispetto a quello per la parte intera. In questo caso si opera per moltiplicazioni successive (per la base 2) della sola parte frazionaria.

Le cifre (bit) ottenute sono quelle dei riporti sulle unità intere.



Conversione della parte frazionaria


Esempi e osservazioni sulla conversione:


Esempio 1




b-1







il valore è esattamente rappresentabile in base 2 con un qualsiasi numero ( 1) di bit per la parte frazionaria.


Esempio 2




b-1




b-2







il valore è esattamente rappresentabile in base 2 con un qualsiasi numero ( 2) di bit per la parte frazionaria.


Conversione della parte frazionaria


Esempi e osservazioni sulla conversione:




b-1


Esempio 3



b-2





b-3





b-4









è rappresentabile esattamente con 4 (o più) bit per la parte frazionaria.

Se si hanno a disposizione solo 3 bit, la conversione genera il valore approssimato 0.1012 (=0.62510).




b-1


Esempio 4



b-2





b-3





b-4





b-5





b-6





b-7





b-8









non è rappresentabile esattamente ed è periodico (numero illimitato di cifre).

E' molto importante notare che il valore frazionario decimale 0.1 molto frequente nella normale numerazione decimale, non è rappresentabile esattamente in forma binaria. Ciò comporta talvolta risultati approssimati in calcoli eseguiti in base 2, che invece darebbero un risultato esatto in base 10.

Operazioni aritmetiche tra naturali

in notazione posizionale


Le operazioni aritmetiche in base 2 seguono le stesse "regole" di quelle in base 10.


E' fondamentale ricordarsi del problema della rappresentabilità dell'informazione con un numero di bit predefinito.


Ad esempio, nel caso di addizione di due interi rappresentati su N bit, il risultato della somma può richiedere N+1 bit (overflow = traboccamento, o superamento).


I circuiti per eseguire le operazioni aritmetiche in notazione posizionale sono molto semplici.
Notevole vantaggio della codifica posizionale.


Esempio tabella della somma su un bit (come nel decimale esiste il riporto verso la cifra più significativa)




b



a

b

a+b









A
























Operazioni aritmetiche: esempi


Somma: N = 4 bit valori rappresentabili da 0 a 15





riporti
















1 110

riporti

7 +


0111 +




1010





non rappresentabile (overflow)


Sottrazione: N = 4 bit valori rappresentabili da 0 a 15





prestiti





6




6







1 000

prestiti

5 -


0101 -


8


1000





non rappresentabile


Codifica ottale


E' la codifica pesata dei numeri naturali in base B=8, sono quindi disponibili 8 valori delle cifre.



Regola di conversione tra ottale e binario:

ogni gruppo di 3 bit corrisponde direttamente ad una cifra ottale come nella tabella accanto.


ESEMPIO

binario 001 010 110 111

ottale 1 2 6 7

valore

cifra

ottale

binario





























Il generico valore in ottale si ottiene dalla relazione (dove N rappresenta il numero di cifre ottali):


P8=bN-1 8N-1+bN-2 8N-2+......+b2 82+b1 81+b0 80











Codifica esadecimale (HEX)


E' la codifica pesata dei numeri naturali in base B=16, sono quindi disponibili 16 valori delle cifre.



La comodità della rappresentazione HEX sta nella facilità di conversione in binario e viceversa:

ogni gruppo di 4 bit corrisponde direttamente ad una cifra HEX, come nella tabella accanto.


ESEMPIO

binario 0110 1001 1101 0100

HEX 6 9 D 4


Generalmente si premette uno "0" iniziale e una "h" finale.

cioè 069D4h

valore

cifra hex

binario
































A



B



C



D



E



F



Il generico valore in esadecimale si ottiene dalla relazione (dove N rappresenta il numero di cifre esadecimali):


P16=bN-1 16N-1+bN-2 16N-2+......+b2 162+b1 161+b0 160


Nella documentazione tecnica di calcolatori ed in generale di circuiti logici occorre spesso citare delle configurazioni binarie (codifiche, indirizzi, ecc.).

Sequenze di 16 o 32 bit rappresentati con "1" e "0" sono, per l'uomo, scomode da gestire e difficili da ricordare.

Si ricorre quindi generalmente alla rappresentazione esadecimale (HEX). In particolare la forma HEX è usata nel linguaggio Assembler.

Rappresentazione dei numeri interi (relativi): Codifica in modulo e segno


Il primo bit (più significativo, cioè il più a sinistra) viene utilizzato come bit di segno:


numero positivo

numero negativo


Possono essere rappresentati solo gli interi compresi tra -(2N-1-1) e (2N-1-1). Infatti solo N-1 bit sono disponibili per il modulo.


Nota: 000 +0

100 -0


Rappresentazione dei numeri interi (relativi): Codifica in complemento a 2


All'interno del calcolatore si utilizza una diversa rappresentazione in complemento a 2 dei numeri interi relativi che consente di trattare somme e sottrazioni algebriche in modo indifferenziato e quindi è realizzabile con circuiti aritmetici più semplici.

Rappresentazione in complemento a 2


Date N cifre binarie, sono disponibili 2N configurazioni distinte: di queste

2N-1 vengono utilizzate per rappresentare valori e

2N-1 vengono utilizzate per rappresentare valori < 0.


Ad esempio, se N = 4 sono disponibili 16 configurazioni distinte, con queste posso rappresentare


valori da 0 a 2N-1-1 cioè da 0 a 7

valori < 0: da -1 a - 2N-1 cioè da -1 a -8



N=6 da -32 a +31

N=7 da -64 a +63

N=8 da -128 a +127

N=10    da -512 a + 511

N=16    da 32.768 a +32.767

N=32    da - 2.000.000.000 a




Rappresentazione in complemento a 2


Codifica su 4 bit




































+1

 
 






Nota bene:


il valore del bit più significativo e' indicativo del segno:

valore

valore < 0

ma non è il segno: non basta cambiarlo per cambiare segno al numero






Rappresentazione in complemento a 2




Regola di conversione


Si scrive il valore assoluto del numero da rappresentare in notazione posizionale su N cifre


se il numero da rappresentare è 0, questa è la rappresentazione in complemento a 2


se il numero da rappresentare è < 0, si complementano tutti i bit e si somma 1


In alternativa, partendo dal bit meno significativo, si lasciano inalterati i valori dei bit fino al primo 1 incluso e si complementano i rimanenti bit


Esempio su 4 bit.


P = - 6   610 = 01102

complemento i bit 1001

sommo 1 1010


- 610 = 1010cpl2










Esempi di operazioni aritmetiche tra relativi in complemento a 2





2 +



7



9




1001 e' negativo!

superamento





3 +













1 111



1111 +

1


0001

0



^

| Bit di CARRY

Puo' esserci oppure no, come puo' esserci

o no il bit di overflow.



Codifica di numeri razionali:

Rappresentazione in virgola mobile

(floating point)


Il valore di un numero razionale R è esprimibile con la seguente forma generale per qualunque base b

R = M . b E

R - valore razionale

M - mantissa frazionaria con segno

b - base

E - esponente intero con segno


Quindi, data una base b, un numero rappresentato in virgola mobile può avere la forma





E

M


Dove M è la rappresentazione della mantissa nella base b e con un certo numero di cifre, ed E è la rappresentazione, anche questa nella base b, dell'esponente da dare alla base.


Il campo di valori rappresentabili dipende da E

la risoluzione (precisione) dipende da M


La rappresentazione si dice normalizzata se la mantissa ha un valore compreso tra l'inverso della base e l'unità, cioè


b-1 M < b0



Codifica di numeri razionali:

Rappresentazione in virgola mobile

(floating point)


Base 10

Es. 1250.3 = 0.12503 . 10 4 normalizzato




= 0.0012503 . 10 6 non normalizzato


Per sfruttare al meglio le cifre di mantissa si normalizza




Base b = 2

Es. 1011010.011 = 0.101101001100 . b





In questo esempio, puramente indicativo, la mantissa è di 12 bit e l'esponente di 4 bit.



Codifica di numeri razionali:

rappresentazione in virgola mobile


Standard IEEE floating point su 32 bit

S

E

M

bit di segno della mantissa

bit di esponente E

23 bit di mantissa M (pari a 7 cifre decimali)


Campo di valori rappresentabili
~ -10 38 . . ~-10 -38 0 ~10 -38 . . ~10 38

Risoluzione uno su 8 milioni


NB. I circa 4 miliardi di configurazioni dei 32 bit usati consentono di coprire un campo di valori molto ampio grazie alla distribuzione non uniforme.


Infatti per numeri molto piccoli i valori sono "fitti", ma si vanno "diradando" per i numeri via via più grandi.


Approssimativamente gli intervalli tra valori contigui sono:

per valori di 10000 l'intervallo è di un millesimo

per valori di 10 milioni l'intervallo è di un'unità

per valori di 10 miliardi l'intervallo è di mille

ecc.



Ci sono anche standard IEEE su 64 e su 80 bit che estendono il campo di valori rappresentabili e la precisione.



Informazioni enumerative: caratteri alfanumerici


I caratteri alfanumerici consentono all'uomo di rappresentare tutte le informazioni "scrivibili" (con qualche difficoltà, anche immagini, suoni, sensazioni, ecc.). Si tratta quindi di una codifica molto importante ed utilizzata.


Si devono rappresentare:


lettere maiuscole/minuscole    A a .. Z z

spazio

cifre     0 .... 9

segni di interpunzione , : ; .

simboli   ! " # % @ ) < =

caratteri di controllo per gestire la visualizzazione, la stampa, la trasmissione dei caratteri (inizio riga, salto di riga, salto pagina



La rappresentazione dei caratteri alfanumerici fa uso di una codifica standard universalmente accettata: codifica ASCII (American Standard Code for Information Interchange)



Codifica ASCII: caratteristiche


7 bit per rappresentare ogni carattere

128 caratteri alfanumerici distinti: le possibili configurazioni vanno da 0000000 a 1111111


la codifica è stata scelta in modo da rispettare alcune "proprietà" dei caratteri:

ordinamento delle cifre

ordinamento delle lettere


introduce le seguenti ulteriori proprietà:

le lettere maiuscole precedono tutte le lettere minuscole

la "distanza" tra una lettera maiuscola e la sua corrispondente minuscola è la stessa per tutte le lettere


ASCII esteso (8 bit) 256 configurazioni:


le prime 128 (da 00000000 a 01111111) sono associate ai caratteri dell'ASCII Standard, le rimanenti 128 (da 10000000 a 11111111) sono associate a lettere accentate..., a caratteri semigrafici ...

Tabella ASCII


bit meno

significativi

bit più significativi











NUL

DLE

SP



P


p


SOH

DC1



A

Q

a

q


STX

DC2



B

R

b

r


ETX

DC3



C

S

c

s


EOT

DC4



D

T

d

t


ENQ

NAK



E

U

e

u


ACK

SYN

&


F

V

f

v


BEL

ETB



G

W

g

w


BS

CAN



H

X

h

x


HT

EM



I

Y

i

y


LF

SUB



J

Z

j

z


VT

ESC



K


k



SO

RS


>

N


n



SI

US



O


o

DEL


N.B.

I valori numerici in piccolo sono il valore decimale corrispondente al codice ASCII


La codifica ASCII di un carattere nella tabella è ottenuta prendendo i 3 bit corrispondenti alla colonna, seguiti dai 4 bit corrispondenti alla riga (questi gruppi di bit sono anche facilmente associabili a cifre esadecimali - v.seguito).



Il registro di stato PSR

e i codici di condizione


Il registro di stato contiene alcune informazioni sull'effetto dell'esecuzione di un'istruzione che possono venire analizzate con successive istruzioni.

Una parte del contenuto del registro e' costituita da 4 bit, detti codici di condizione, e indicati con le lettere:

Z (zero), N (negativo), C (carry, riporto) e V (overflow)


PSR


Z

N

C

V



Dopo l'esecuzione di un istruzione i bit del registro contengono un valore che dipende dal risultato dell'istruzione stessa.

Ad es dopo una addizione:


Z vale 1 solo se il risultato dell'addizione e' 0

N vale 1 solo se il risultato dell'addizione e' negativo

C vale 1 solo se l'addizione ha provocato un riporto

V vale 1 solo se l'addizione ha dato luogo ad

overflow, cioe' la somma di due positivi risulta un

numero negativo, oppure la somma di due negativi

risulta un numero positivo






Privacy




Articolo informazione


Hits: 1844
Apprezzato: scheda appunto

Commentare questo articolo:

Non sei registrato
Devi essere registrato per commentare

ISCRIVITI



Copiare il codice

nella pagina web del tuo sito.


Copyright InfTub.com 2024