CODIFICA DATI/ISTRUZIONI
Nel calcolatore tutta l’informazione e’
codificata in binario (sequenza di 0,1)
Perche’ il calcolatore e’ formato da
componenti BISTABILI:
- elettronici (alta/bassa tensione elettr.)
- magnetici (differente stato di
polarizzazione magnetica)
- ottici (alternanza luce/buio)
2 STATI “FISICI” (possibili, nitidi e sicuri)
che vengono RAPPRESENTATI (denotati)
con 0 e 1 che sono anche le cifre del
sistema binario
CODIFICA DATI/ISTRUZIONI
• CODIFICA BINARIA corrisponde ad un
FENOMENO FISICO che puo’ essere
osservato in 2 stati
• La limitazione a soli 2 stati e’ nata da
motivazioni tecnologiche
(minori probabilita’ di guasti e di errori)
• Codifica binaria da “NECESSITA’” ad
“OPPORTUNITA’” per la standardizzazione
della rappresentazione di tutte le
informazioni
CODIFICA DEI CARATTERI
• Perche’???
DATO NUMERICO
1. INFORMAZIONE
DATO ALFANUMERICO
(alfabeto)
2. ISTRUZIONI (CODICE OPERATIVO)
3. ISTRUZIONI DI STAMPA
CODIFICA DEI CARATTERI
3 CATEGORIE DI CARATTERI:
• CARATTERE ALFANUMERICO
(A,B,C,.....Z
a,b,c,.....z
0,1,......9)
• SEGNI di punteggiatura o aritmetici
( , ; : + / - * . $ & # .........)
• CARATTERI DI COMANDO
codici per la trasmissione
codici per il controllo della stampante
CODIFICA DEI CARATTERI
“PATTERNS OF BITS”
• UTILIZZA UNA STRINGA/SEQUENZA
DI BIT
• E’ UNA CONVENZIONE TRA
PRODUTTORI che determina:
la compatibilita’ tra macchine
la necessita’ o non di “conversioni” (la
trascodifica dei dati)
CODIFICA DEI CARATTERI
•
•
•
•
IL NUMERO DEI CARATTERI
RAPPRESENTABILI DIPENDE DAL
NUMERO DEI BIT UTILIZZATI:
con 6 bit : set di 64 caratteri
con 7 bit : set di 128 caratteri
con 8 bit : set di 256 caratteri
con 16 bit : set di 65.536 caratteri
Per rappresentare il ns alfabeto occorrono
almeno 7 bit (128 configurazioni)
“Le convenzioni per i caratteri”
• La convenzione deve essere accettata
da tutti gli utilizzatori
• A livello internazionale sono stati definiti
degli “standard”
• La situazione degli standard di codifica
è la seguente:
CODIFICA DEI CARATTERI
codifiche in “disuso”:
a 6 BIT (64 caratteri)
26 lettere dell’alfabeto + 10 cifre decimali +
28 segni e caratteri speciali (limitata: le
sole lettere dell’alfabeto sono 52)
• B.C.D. per carattere
(alcune macchine IBM)
• CODICE FIELDDATA
(macchine UNIVAC)
CODIFICA DEI CARATTERI
CODIFICHE IN “USO” A 8 BIT:
• ASCII (American Standard Code for
Information Interchange )
STANDARD (128 caratteri)
utilizza 7 bit, ma 1 bit ignorato o di parita’ nelle
trasmissioni dei dati – utilizzata da tutti i
produttori di tutti i paesi
• ASCII ESTESO (256 caratteri): NON
STANDARD
• E.B.C.D.I.C. : no PC
(mondo IBM mini/mainframe - AS400)
CODIFICA DEI CARATTERI
Esempio CODIFICA ASCII
simbolo ASCII
(code)
0
00110000
(48)
1
00110001
(49)
2
00110010
(50)
3
00110011
(51)
..............................................
A
01000001
(65)
B
01000010
(66)
a
01100001
(97)
CODIFICA DEI CARATTERI
CODIFICHE più RECENTI
• Poiche’ 256 caratteri sono
insufficienti per rappresentare i
simboli dell’alfabeto di altre lingue,
occorrono 16 BIT
• UNICODE  codifica a 16 bit 
65.536 caratteri  Nuovo standard
Codifica dei NUMERI IN ASCII
• Ogni cifra numerica può essere codificata
con il corrispondente carattere ASCII
• ES: 1951  00110001 00111001
00110101
00110001
• Spreca spazio (non è efficiente)
• Non è elaborabile numericamente
CODIFICA dei NUMERI
• NUMERI codificati con il SISTEMA DI
NUMERAZIONE BINARIO (partendo dal
presupposto che qualsiasi numero decimale
può essere facilmente convertito in numero
binario)
• La codifica binaria NON COSTITUISCE UN
LIMITE all’INSIEME DEI NUMERI
RAPPRESENTABILI
• IL NUMERO MASSIMO rappresentabile viene
dato dal N.RO dei BIT a disposizione
• Con N bit si possono codificare numeri
naturali compresi tra 0 <-> ((2^N) - 1)
Codifica dei numeri - NATURALI
BIT
INTERVALLO NUMERICO
2
0 - 3
4
0 - 15
8 (1 byte *)
0 - 255
12
0 - 4.095
16 (2 byte *)
0 - 65.535
24 (3 byte )
0 - 16.777.215
32 (4 byte *)
0 - 4.294.967.295
• BYTE = unità generalmente trattata (vedi es.xls)
Codifica dei NUMERI NATURALI
• Il numero piu’ grande rappresentab. e’ =
2^n - 1 dove n indica il n.ro di bit
disponibili
• Nel computer non esiste il - infinito e il +
infinito.
• ESISTE UN NUMERO MINIMO ED UN
NUMERO MASSIMO che dipende dal n.ro
dei bit disponibili
• Nel momento in cui si fissa il n.ro di bit
destinati a rappresentare un numero,
automaticamente si fissa anche il n.ro
massimo gestibile
• Oltre si va in “overflow” (travaso) – errore!
Codifica dei NUMERI INTERI
(positivi e negativi)
• Numeri rappresentabili SEMPRE (quale sia
la tecnica adottata):
da -2^(n-1) a +2^(n-1)-1
• Con 1 byte (8 BIT):
naturali : 0 - 255
interi : da -128 a + 127
• 1° tecnica con 1 BIT PER IL SEGNO
0 per i positivi
1 per i negativi
I restanti 7 bit per il NUMERO
• Es.xls – rappresentazione numeri
Codifica dei numeri INTERI
• “Binario con bit di segno” è facile da
leggere
• Poco efficiente: 2 rappresentazioni per lo
zero: zero positivo e zero negativo, ma
soprattutto NON E’ ELABORABILE CON
FACILITA’
• 2° tecnica: COMPLEMENTO A 2
NUMERI negativi :
COMPLEMENTO a 2
LUCIDI BENTIVOGLIO – pagg. 63 -77
RAPPRESENTAZ. NUMERI
FRAZIONARI / REALI
• VIRGOLA MOBILE
(FLOATING POINT)
• VIRGOLA FISSA
(FIXED POINT)
0,00367
=
367 x 10 ^-5
= 367 E -5
mantissa esponente
notazione scientifica
formato esponenzial
RAPPRESENTAZ. NUMERI
FRAZIONARI / REALI
• Con pochi simboli consente di
rappresentare numeri molto grandi e
numeri molto piccoli
7.670.000.000 = 767 E +7
0,000001465 = 1465 E -9
• FLOATING sia in DECIMALE che in
BINARIO: OCCUPA MENO BIT
RAPPRESENTAZ. NUMERI
FRAZIONARI / REALI
• numero : 12.000.000.000.000
• VIRGOLA FISSA : richiede almeno 44
bits (6 byte)
2^43= 8.796.093.022.208
2^44= 17.592.186.044.416
• VIRGOLA MOBILE = 12 E +12
S MANTISSA S ESPONENTE
1
4
1
4 = 10 bits (2 byte)
FLOATING POINT
LA PRECISIONE DEL NUMERO
DIPENDE DAL NUMERO DI BITS
destinati alla MANTISSA
es: 12.300.000.000.000
= 0,123 E +14
con 8 bit : mantissa = 123
con 6 bit : mantissa = 12 (2^6 = 0 - 63)
FLOATING POINT
LA DIMENSIONE DEL NUMERO (n.ro
MAX E MIN) dipende dal NUMERO DI
BITS RISERVATI ALL’ESPONENTE
Es: a parita’ di mantissa
123 E 15 = 123.000.000.000.000.000
123 E 18 = 12.300.000.000.000.000.000
VIRGOLA FISSA / MOBILE
• VIRGOLA FISSA NEL GESTIONALE
dove e’ importante la precisione e
non la “dimensione” dei numeri
• VIRGOLA MOBILE NELLO
SCIENTIFICO dove e’ importante
poter trattare n.ro molto grandi o
molto piccoli
FLOATING POINT
• SHORT REAL (SINGOLA
PRECISIONE) 32 BITS
• 1 per il segno, 23 per la mantissa, 8
per l’esponente
• ** da 10^-38 a 10^ 38
• LONG REAL (DOPPIA PRECISIONE)
• 64 BITS (51 per mantissa)
• da 10^-308 a 10^308
CODIFICHE DEI NUMERI
NUMERO MINIMO E NUMERO MAX
RAPPRESENTABILE dal computer ?
dipende:
- codifica adottata
- modalita’ di rappresentazione (fissa/mobile)
- n.ro byte che il linguaggio di programmazione
usa (FISSO / VARIABILE )
es: BASIC st. (2 byte)
COBOL
COSA RAPPRESENTA IL
BYTE: 01000001 ???
• se BINARIO PURO:
con 1 byte = 65 decimale
parte di 1 o + byte = ????
• se B.C.D.: 0100 = 4
0001 = 1
41 decimale
COSA RAPPRESENTA IL
BYTE
01000001 ???
• se ASCII : A
• se EBCDIC = L
• se ISTRUZIONE MACCHINA
add ???
• se INDIRIZZO CELLA di
MEMORIA ..............
COSA RAPPRESENTA IL
BYTE
01000001 ???
• se NUMERO REALE / FLOAT:
mantissa o parte della
mantissa
oppure
tutto (o parte) esponente
• se IMMAGINE .............
• se SUONO...(formato .WAY?)
DA CHI DIPENDE
L’INTERPRETAZIONE ???
DAL SOFTWARE !!!!
LINGUAGGIO NATURALE
LINGUAGGIO DI
PROGRAMMAZIONE
TRADUTTORI
000111
001100
LINGUAGGIO
MACCHINA
CODIFICA ESADECIMALE
• CODIFICA A BASE 16 CHE SERVE
SOLO PER SEMPLIFICARE LA
RAPPRESENTAZIONE DEI BYTE IN
BINARIO
• NON VIENE USATA DAL COMPUTER
MA DALL’ UOMO PER COMODITA’ DI
RAPPRESENTAZIONE
CODIFICA ESADECIMALE
0000 = 0
0001 = 1
0010 = 2
0011 = 3
0100 = 4
0101 = 5
0110 = 6
0111 = 7
1000 = 8
1001 = 9
1010 = A
1011 = B
1100 = C
1101 = D
1110 = E
1111 = F
ALLORA OGNI BYTE POTRA’ ESSERE
DIVISO IN SEMIBYTE IL QUALE POTRA’
ESSERE TRASFORMATO IN HEX
10011100 = 9C H
10001111 = 8F
H
Scarica

Cap. 3 La rappresentazione dei dati nel calcolatore e le codifiche pag.