La codifica delle informazioni

Transcript

La codifica delle informazioni
La codifica delle informazioni
La codifica delle informazioni
Bit e byte
Come già visto l’elaboratore è in grado di rappresentare informazioni al proprio interno solo
utilizzando cifre binarie (bit) che solitamente vengono manipolate a gruppi: in particolare, per
essere elaborate le cifre binarie vengono raggruppate ins equenze di 8 bit. Una di tali sequenze
prende il nome di byte. La convenzione di raggruppare i bit in gruppi di 8 è uno standard accettato
ormai da tutte le case costruttrici di computer (imposto negli anni ’60 dalla IBM). Inoltre, per il
trattemnto dei dati numerici, gli elaboratori operano su sequenze composte da un numero fisso di
byte formando parole (esistono parole da 1, 2, 4 o 8 bytes).
Codici alfanumerici
I dati immessi da tastiera vengono memorizzati temporaneamente in memoria centrale (R.A.M.),
poi conservati in memoria di massa, per far ciò è necessario codificare i dati.
Pag. 1
La codifica delle informazioni
Nella fase di output i codici, provenienti dalla memoria centrale vengono decodificati per arrivare
su video o su carta in un formato comprensibile all’utente.
A merican
Il primo alfabeto per la codifica standard fu il codice A.S.C.I.I.
S tandard
che utilizzava 7 bit per rappresentare fino a 2 7 = 128 caratteri distini.
C ode for
Successivamente il codice venne esteso a 1 byte = 8 bit per rappresentare fino a
I nformation
28 = 256 caratteri distinti.
I nterchange
Il codice A.S.C.I.I. viene attualmente usato dai personal computer.
Un analogo codice, E.B.C.D.I.C., viene usato dai minicomputer e mainframe IBM
E xtended
B inary
C ode
D ecimal
I nter
C hange
Codice ASCII
Pag. 2
La codifica delle informazioni
Codice EBCDIC
Pag. 3
La codifica delle informazioni
Per rappresentare il valore, solo nel caso di Per rappresentare simboli di qualunque tipo,
numeri si usa il sistema
compresi i numeri ma solo con riferimento alle
cifre e non al loro valore, si usano le codifiche
BINARIO
A.S.C.I.I.
E.B.C.D.I.C.
per poter effettuare operazioni
ARITMETICHE
che rappresentano ogni carattere con
1 byte = 8 bit
mentre con la tecnica
B.C.D.
si può rappresentare ogni carattere con
1 semibyte = 4 bit
Codici numerici
Rappresentazione zoned
La codifica zoned prende origine dalla codifica E.B.C.D.I.C. Con questa codifica ciascuna cifra
occupa un byte:
F⇐
F⇐
F⇐
F⇐
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
⇓
Zonatura
Contiene la parte fissa
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
⇒0
⇒1
⇒2
⇒3
⇓
Parte Digit
Contiene la parte variabile, diversa per ogni numero
Per rappresentare un numero relativo si posiziona il segno al posto del semibyte di peso maggiore
della cifra di peso minore del numero stesso. In particolare:
per rappresentare il segno + si utilizza il simbolo C16 = 1210
per rappresentare il segno - si utilizza il simbolo D16 = 1310
Pag. 4
La codifica delle informazioni
Esempi
rappresentazione del numero +412
1111
F
0100
4
1111
F
4
0001
1
1
1100 0010
C
2
2 (+)
un numero di 3 cifre occupa 3 byte.
rappresentazione del numero -1278
1111
F
0001
1
1
1111
F
0010
2
1111
F
2
0111
7
7
1101 1000
D
8
8 (-)
un numerto di 4 cifre occupa 4 byte.
Rappresentazione packed
La codifica packed prende origine dalla codifica zoned. Partendo dalla codifica zoned, eliminando
la zonatura ed aggiungendo il segno nel semibyte di peso maggiore si ottiene la codifica packed.
E’anche possibile dire che per ottenere la codifica packed è sufficiente codificare ogni cifra
decimale secondo la tecnica B.C.D. aggiungendo un semibyte per il segno e completando con
eventuali 0 non significativi per raggiungere un numero di pari di semibyte.
codifica zoned
un numero di 3 cifre occupa 3 byte.
1111
F
0100
4
4
codifica packed
un numero di 3 cifre occupa 2 byte.
0100
4
4
1111
F
0001
1
1
0001
1
1
1100 0010
C
2
2 (+)
0010 1100
2
C
2 (+)
Come nel caso della rappresentazione packed, per rappresentare il segno:
+ si utilizza il simbolo C16 = 1210
- si utilizza il simbolo D16 = 1310
In questo caso il segno si posiziona al posto del semibyte di peso minore della cifra di peso minore
del numero stesso (vedi esempio).
Codifica nella forma del complemento a 2
La forma del complemento a 2 è la più usata per repparesentare numeri durante la fase di
elaborazione. Essa consiste nel rappresentare un numero negativo per mezzo del complemento a 2
del corrispondente numero positivo.
Pag. 5
La codifica delle informazioni
In pratica, con la codifica nella forma complemento a 2, si ha che l’usuale valore posizionale è
associato a ciascuna cifra binaria con l’esclusione del bit più significativo al quale è associato un
valore negativo.
I numeri possono essere rappresentati con 2, 4, 8 byte, a seconda del tipo di precisione scelta. Il
segno viene rappresentato nel
primo bit.
0 numero positivo
1 numero negativo
Esempio:
0 0
+
0
0
0
0
0
0
0 0
50
1
1
0
0
1
0
Lo stesso numero con il segno “meno” viene rappresentato in complemento a 2:
5010=1100102 complemento a 1
►
1111111111001101
+
1
=
____________________
1111111111001110
◄ complemento a 2
15
Il massimo numero rappresentabile con 2 byte è: 2 - 1 = 32767
Rappresentazione in virgola mobile o floating point
Dato un qualunque numero questo può essere rappresentato in virgola mobile (floating point) per
estendere il rango dei numeri che possono essere rappresentati in un dato numero di bits.
La rappresentazione floating point è molto simile a quella denominata scientifica o standard. Un
numero rappresentato in notazione scientifica è il prodotto di due parti: una delle due, detta fattore
di scala (caratteristica o esponente), è una potenza del 10 mentre l’altra parte, detta parte
frazionaria (mantissa), è un numero tale che, moltiplicato per il fattore di scala, dà il numero che
si vuole rappresentare. Si dice che la rappresentazione scientifica è normalizzata, se la parte
frazionaria è tale che:
è minore di 1,
la cifra più significativa è diversa da 0.
Consideriamo i seguenrti esempi decimali:
-12,75
+140
+0,075
-> -0,1275
-> 0,14
-> 0,75
x 100 ->
x 1000 ->
x 0,1
->
-0,1275
0,14
0,75
x 102
x 103
x 10-1
L’elaboratore converte il numero decimale seguendo le consuete regole:
per la parte intera usa il metodo delle divisioni successive,
Pag. 6
La codifica delle informazioni
per la parte decimale usa il metodo delle moltiplicazioni successive,
convertendo in binario il primo degli esempi avremo:
-12,7510
-> 1100,112
-> 0,110011
x 10000
->
0,110011
x 2+100
Consideriamo i seguenti esempi scritti interamente in base 2
101000,0 = +0,101
X 1000000
0,00011 = +0,11
X 0,001
-110,11 = -0,11011 X 1000
= 0,101
x 10110
= 0,11
x 10-11
= -0,11011 x 1011
Esistono vari metodi per la rappresentazione dei dati in un computer ma, a scopo esmplificativo, si
può considerare il caso in cui si utilizzano 1 byte per l’esponente e 2 bytes per la mantissa, con il
primo bit rappresenta il segno.
La rappresentazione del numero -1100,112 potrà quindi essere effettuata con 3 byte nel seguente
modo:
-1100,11
= -0,110011
x 10000
= -0,110011
x 10100
(+) segno
(-) segno
00000100 10000000 00110011
Caratteristica
Mantissa
Esercizi
1. Rappresentare, con la tecnica:
o zoned
o packed
o complemento a 2
i numeri indicati ed indicare il numero di byte che li compongono.
2.
Rappresentare, con la tecnica floating point:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
1.
2.
3.
4.
5.
-852
+159
-7539
-3582
+1596
+1236
+789
-654
-123
+963
-85
+0,15
–0,075
–0,035
+15
Pag. 7