Rappresentazione dei dati - unibo.itfimecc.ing.unibo.it/PROGRAMMA/lezione4.pdf · Rappresentazione...
Transcript of Rappresentazione dei dati - unibo.itfimecc.ing.unibo.it/PROGRAMMA/lezione4.pdf · Rappresentazione...
Rappresentazione dei dati
memoria: milioni di interruttori
ogni interruttore può essere
● acceso (ON)
● spento (OFF)
1
0 sistema binario
Alma Mater Studiorum Università di Bologna - Fondamenti di Informatica T (a-k)
BASE 10
12210 1 102
2 101
2 100
102
101
100
1 2 2
102
101
100
1 2 2
102
101
100
1 2 2
Il valore di ogni singola cifra è dato
dalla sua posizione
Il valore è espresso in potenze di 10
(base)
Alma Mater Studiorum Università di Bologna - Fondamenti di Informatica T (a-k)
22
21
20
1 0 11
BASE 2
1012 1 22
0 21
1 20
510
con 3 cifre binarie possiamo rappresentare 8 valori o stati (da
0 a 7)
con 1 byte = 8 bit possiamo rappresentare
Esempio: proviamo a esprimere il numero (5)10 in base
binaria
Il valore di ogni singola cifra è dato
dalla sua posizione
Il valore è espresso in potenze di 2
(base)
28
256 valori
Alma Mater Studiorum Università di Bologna - Fondamenti di Informatica T (a-k)
Rappresentazione dei numeri negativi:
l'aritmetica del complemento a due
Una possibile rappresentazione é quella di utilizzare il bit
più a sinistra (più significativo) per identificare il segno:
0 positivo
1 negativo
510 00001012
510 10001012
In realtà, non si utilizza questa notazione “ovvia” ma si
passa alla notazione binaria con complemento a due
Alma Mater Studiorum Università di Bologna - Fondamenti di Informatica T (a-k)
Procedura per la rappresentazione in
complemento a due
1. Rappresentate il numero binario in valore assoluto.
2. Complementate il numero (gli 1 diventano 0, gli 0 diventano 1)
3. Sommate 1 al numero complementato
Esempio: rappresentiamo -510
in complemento a due (8 bit)
1. 510
= 000001012
2. 000001012 diventa 11111010
2
3. 111110102 + 1
2 = 11111011
2
- 510
= 111110112
Alma Mater Studiorum Università di Bologna - Fondamenti di Informatica T (a-k)
PERCHE‘ QUESTA RAPPRESENTAZIONE?
Numeri positivi e negativi possono essere sommati tra loro
seguendo le regole dalla normale addizione
(a prescindere dal segno!)
Il computer può sommare tra loro due interi senza controllare
il segno
progettazione dei circuiti é più semplice in quanto richiede
solo un circuito sommatore
Alma Mater Studiorum Università di Bologna - Fondamenti di Informatica T (a-k)
Codifiche utilizzate per rappresentare dati
Caratteri – 26 lettere maiuscole (A – Z)
– 26 lettere minuscole (a – z)
– 10 cifre (0 – 9)
– vari simboli ( ) “ ! ? % & / = # *+ ,- *
– lettere e simboli speciali, ad esempio à è ç £
Numeri naturali
Numeri interi
Numeri reali
Alma Mater Studiorum Università di Bologna - Fondamenti di Informatica T (a-k)
Codifica dei caratteri
1 byte = 1 carattere
Infatti, abbiamo visto come con 1 byte sia possibile
esprimere 256 stati diversi
E' stato necessario adottare un sistema di codifica che
standardizzasse la corrispondenza numero naturale - carattere
Sistemi di codifica:
ASCII (American Standard Code for Information Interchange):
definisce quali caratteri sono associati ai primi 128 valori numerici
EBCDIC (Extended Binary Coded Decimal Interchange Code, in
disuso)
Unicode (per lingue che utilizzano più di 256 caratteri, 2 byte per
carattere) Alma Mater Studiorum Università di Bologna - Fondamenti di Informatica T (a-k)
Numeri naturali
Memorizzati ESATTAMENTE
Non richiedono il bit di segno
Si utilizzano prevalentemente per rappresentare indirizzi di memoria
2 byte (16 bit) = indirizzo fra 0 e 216-1
4 byte (32 bit) = indirizzo fra 0 e 232-1
8 byte (64 bit) = indirizzo fra 0 e 264-1 Poiché sono solo numeri positivi non si utilizza l’aritmetica
del complemento a 2
Alma Mater Studiorum Università di Bologna - Fondamenti di Informatica T (a-k)
Numeri Interi
Memorizzati ESATTAMENTE
Numeri interi = numeri naturali positivi e negativi + 0
In genere,
4 byte = 1 numero intero
non tutti i numeri possono essere rappresentati ma solo quelli compresi tra
10
1 6482.147.483.2 =n
2n 1
1 2.147.483.64710
e
n = numero di bit
= 4 * 8 = 32
Alma Mater Studiorum Università di Bologna - Fondamenti di Informatica T (a-k)
Numeri reali
Numeri non rappresentabili con numeri naturali
Ad esempio:
• Numeri molto grandi (secondi/secoli) 3,155,760,000
• Numeri molto piccoli (diametro atomico) 0.00000001
• Razionali (periodici) 2/3 (0.666666666. . .)
• Irrazionali √2 (1.414213562373. . .)
• Transcendentali e (2.718...), (3.141...)
Si utilizza la notazione scientifica
Alma Mater Studiorum Università di Bologna - Fondamenti di Informatica T (a-k)
Rappresentazione dei numeri reali
6.02 * 1023
Mantissa p Esponente q
Base β (radice)
punto decimale
(virgola)
Normalizzato: soddisfa la condizione di normalizzazione
Esempio
non normalizzato: 60.2 * 10 22
invece normalizzato 0.602 * 10 24
Alma Mater Studiorum Università di Bologna - Fondamenti di Informatica T (a-k)
)10(11 p
Notazione scientifica per numeri binari
1.02 * 2-1
mantissa esponente
base (radice) punto binario
(virgola)
N.B:
La posizione del punto binario non è fissa.
Per questa ragione questa rappresentazione è chiamata
a “virgola mobile” (floating point)
Alma Mater Studiorum Università di Bologna - Fondamenti di Informatica T (a-k)
Rappresentazione in virgola mobile
Formato
In singola precisione, un numero reale viene memorizzato
in 32 bit di cui:
➢ 1 utilizzato per il segno
➢ 23 per la mantissa
➢ 8 per l'esponente
Posso quindi memorizzare numeri reali che appartengono al
seguente intervallo
[2-128,2128] in base 2 quindi [10-38,1038] in base 10
Alma Mater Studiorum Università di Bologna - Fondamenti di Informatica T (a-k)
Rappresentazione in virgola mobile
Rappresentazione approssimata del numero: 7 cifre
significative in rappresentazione decimale
APPROSSIMAZIONE
Numero troppo grande (>1038)
OVERFLOW! Non posso rappresentare l'esponente in 8 bit
Numero troppo piccolo (>0, <10-38)
UNDERFLOW! L'esponente negativo è più grande di quello
rappresentabile con 8 bit
Soluzione: utilizzare più bit per rappresentare il numero
Alma Mater Studiorum Università di Bologna - Fondamenti di Informatica T (a-k)
Doppia precisione
Uso 64 bit per memorizzare ogni numero, di cui
● 1 per il segno
● 11 per l'esponente
● 52 per la mantissa
Singola precisione
- 32 bit
- 23 bit per la matissa
- numeri tra [2-128,2128] in
base 2
Doppia precisione
- 64 bit
- 52 bit per la matissa
- numeri tra [2-308,2308] in
base 2
Alma Mater Studiorum Università di Bologna - Fondamenti di Informatica T (a-k)