Rappresentazione dei dati - unibo.itfimecc.ing.unibo.it/PROGRAMMA/lezione4.pdf · Rappresentazione...

16
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)

Transcript of Rappresentazione dei dati - unibo.itfimecc.ing.unibo.it/PROGRAMMA/lezione4.pdf · Rappresentazione...

Page 1: Rappresentazione dei dati - unibo.itfimecc.ing.unibo.it/PROGRAMMA/lezione4.pdf · Rappresentazione dei numeri reali 6.02 * 1023 Mantissa p Esponente q Base β (radice) punto decimale

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)

Page 2: Rappresentazione dei dati - unibo.itfimecc.ing.unibo.it/PROGRAMMA/lezione4.pdf · Rappresentazione dei numeri reali 6.02 * 1023 Mantissa p Esponente q Base β (radice) punto decimale

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)

Page 3: Rappresentazione dei dati - unibo.itfimecc.ing.unibo.it/PROGRAMMA/lezione4.pdf · Rappresentazione dei numeri reali 6.02 * 1023 Mantissa p Esponente q Base β (radice) punto decimale

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)

Page 4: Rappresentazione dei dati - unibo.itfimecc.ing.unibo.it/PROGRAMMA/lezione4.pdf · Rappresentazione dei numeri reali 6.02 * 1023 Mantissa p Esponente q Base β (radice) punto decimale

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)

Page 5: Rappresentazione dei dati - unibo.itfimecc.ing.unibo.it/PROGRAMMA/lezione4.pdf · Rappresentazione dei numeri reali 6.02 * 1023 Mantissa p Esponente q Base β (radice) punto decimale

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)

Page 6: Rappresentazione dei dati - unibo.itfimecc.ing.unibo.it/PROGRAMMA/lezione4.pdf · Rappresentazione dei numeri reali 6.02 * 1023 Mantissa p Esponente q Base β (radice) punto decimale

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)

Page 7: Rappresentazione dei dati - unibo.itfimecc.ing.unibo.it/PROGRAMMA/lezione4.pdf · Rappresentazione dei numeri reali 6.02 * 1023 Mantissa p Esponente q Base β (radice) punto decimale

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)

Page 8: Rappresentazione dei dati - unibo.itfimecc.ing.unibo.it/PROGRAMMA/lezione4.pdf · Rappresentazione dei numeri reali 6.02 * 1023 Mantissa p Esponente q Base β (radice) punto decimale

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)

Page 9: Rappresentazione dei dati - unibo.itfimecc.ing.unibo.it/PROGRAMMA/lezione4.pdf · Rappresentazione dei numeri reali 6.02 * 1023 Mantissa p Esponente q Base β (radice) punto decimale

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)

Page 10: Rappresentazione dei dati - unibo.itfimecc.ing.unibo.it/PROGRAMMA/lezione4.pdf · Rappresentazione dei numeri reali 6.02 * 1023 Mantissa p Esponente q Base β (radice) punto decimale

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)

Page 11: Rappresentazione dei dati - unibo.itfimecc.ing.unibo.it/PROGRAMMA/lezione4.pdf · Rappresentazione dei numeri reali 6.02 * 1023 Mantissa p Esponente q Base β (radice) punto decimale

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)

Page 12: Rappresentazione dei dati - unibo.itfimecc.ing.unibo.it/PROGRAMMA/lezione4.pdf · Rappresentazione dei numeri reali 6.02 * 1023 Mantissa p Esponente q Base β (radice) punto decimale

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

Page 13: Rappresentazione dei dati - unibo.itfimecc.ing.unibo.it/PROGRAMMA/lezione4.pdf · Rappresentazione dei numeri reali 6.02 * 1023 Mantissa p Esponente q Base β (radice) punto decimale

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)

Page 14: Rappresentazione dei dati - unibo.itfimecc.ing.unibo.it/PROGRAMMA/lezione4.pdf · Rappresentazione dei numeri reali 6.02 * 1023 Mantissa p Esponente q Base β (radice) punto decimale

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)

Page 15: Rappresentazione dei dati - unibo.itfimecc.ing.unibo.it/PROGRAMMA/lezione4.pdf · Rappresentazione dei numeri reali 6.02 * 1023 Mantissa p Esponente q Base β (radice) punto decimale

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)

Page 16: Rappresentazione dei dati - unibo.itfimecc.ing.unibo.it/PROGRAMMA/lezione4.pdf · Rappresentazione dei numeri reali 6.02 * 1023 Mantissa p Esponente q Base β (radice) punto decimale

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)