















































Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Slides su codifica-floating-point
Tipologia: Slide
1 / 55
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!
















































In un calcolo
astronomico
è necessario esprimere:
la massa dell’elettrone:
-28^ grammi^ 0.
la massa del sole:
33 grammi^2000000000000000000000000000000000
Quante cifre occorre usare? 62 cifre: 34 alla sinistra della virgola e 28 a destra^ 0000000000000000000000000000000000.0000000000000000000000000009^ 2000000000000000000000000000000000.0000000000000000000000000000 Problema
: anche se la gamma dei numeri necessari è molto grande, i numeri significativi sono pochi…… Soluzione
: notazione scientifica
1
-^
6
8
La rappresentazione non è unica; esistono convenzioni che permettono diottenere una rappresentazione unica, ad es. imponendo che la prima cifrasignificativa della mantissa si trovi immediatamente a destra della virgola;queste forme si dicono
rappresentazioni normalizzate
:
1
9
Pensando ad una utilizzazione per il calcolatore si possono stabilireulteriori convenzioni: fissare la lunghezza
della mantissa ad un valore costante
^ limitare l’esponente
ad opportuni intervalli
^ utilizzare un
esponente
convenzionale che lo renda
sempre positivo
(notazione in eccesso) disporre i tre elementi: <segno, esponente, mantissa> in un ordine stabilito
segno
esponente
mantissa
Esempio di rappresentazione floating point binaria su 32 bit il primo bit rappresenta il segno della mantissa (0 per +, 1 per -) 7 bit successivi rappresentano l’esponente (espresso in base 2) in notazione eccesso 64 (esponente effettivo tra -64 e +63) gli ultimi 24 bit rappresentano la mantissa normalizzata Esempio:
204,
rappresentazione binaria:
11001100,
rappresentazione normalizzata
0,110011000010110010000111 × 10
1000
-^ bit di segno:
0
-^ esponente eccesso 64:
1001000
-^ mantissa:
110011000010110010000111
(^10010000)
110011000010110010000111
(^0) × 2 (^8) × 2 Spostando
la virgola
a^ sinistra (dividere
per^
la base)^
si^ aumenta di 1 l’esponente (simoltiplica
per^
la base) mantenendol’uguaglianza
La^
gamma (range)
è determinata dal numero di
cifre dell’esponente e la
precisione
dal numero di
cifre della mantissa.
ATTENZIONE!!
Con i numeri floating-point si può “simulare” ilsistema dei numeri reali, pur con grandi differenze:^ i numeri reali hanno la potenza del continuo^ i numeri floating point sono in numero finito
99
0,999 x 10
99
-100 -
-100 10 0
Overflow negativo
Numeri negativi rappresentabili
Numeri positivi rappresentabili
Underflow negativo
Underflow positivo zero
Overflow positivo
Ogni produttore aveva un suo formato floating-point Fine anni '70 la
IEEE
costituisce un comitato al fine
di^ standardizzare
l'aritmetica floating-point
Tre formati:
singola precisione
(32 bit),
doppia
precisione
(64 bit),
precisione estesa
(80 bit)
Base 2
per mantissa,
notazione in eccesso
per
esponente Mantissa
normalizzata
: la parte intera
è^ sempre 1,
questo bit
è^ nascosto quindi la mantissa si
compone della sola parte frazionaria
0 segno
1 0 0 0 0 1 1 1^ Esponente^ eccesso 127
8 bit
1 0 1 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23 bit^ mantissa
432
0 216
0 108
0 54
0 27
1 13
1 6
0 3
1 1
1
8
8
esp^
mantissa M
valore v
Numero normalizzato Numero denormalizzato Zero Infinito NaN
0 <^ esp
< 255 esp^ = 0 esp^ = 0 esp^ = 255 esp^ = 255
qualunque^ M^
≠^^0 M = 0 M = 0 M ≠^^0
v^ = (-1)
s(1, M
esp-127) v^ = (-1)
s(0, M
-126) v^ = (-1)
s^0 v^ = (-1)
s∝ v^ = NaN
Simb.
ASCII
Simb.
ASCII
Simb.
00101010
*****^
00111001
9
01000111
G
00101011 +
00111010
:^
01001000
H
00101100 ,
00111011
;^
01001001
I
00101101 -
00111100
<^
01001010
J
00101110.
00111101
=^
01001011
K
00101111 /
00111110
>^
01001100
L
00110000 0
00111111
?^
01001101
M
00110001 1
01000000
@^
01001110
N
00110010 2
01000001
A^
01001111
O
00110011 3
01000010
B^
01010000
P
00110100 4
01000011
C^
01010001
Q
00110101 5
01000100
D^
01010010
R
00110110 6
01000101
E^
01010011
S
00111000 8
01000110
F^
01010100
T
Sebbene 7 bit siano sufficienti per codificare l’insieme di caratteri diuso comune, il codice ASCII standard utilizza 8 bit, il primo (più asinistra) dei quali è sempre 0 Esempio: codifica della parola
cane
Problema inverso: quale testo è codificato da una datasequenza?^ ^ si divide la sequenza in gruppi di otto bit (un byte);^ ^ si determina il carattere corrispondente ad ogni byte^011010010110110000100000010100000110111100101110
I^ numeri possono essere codificati in due modi:^ ^ ASCII
(2 byte)
(1 byte)
Il primo modo è usato per le comunicazioni con l'esterno(input/output) Il secondo modo è usato all'interno; per fare i calcoli non è possibileusare direttamente le codifiche ASCII (Esistono dei programmi diconversione che trasformano i numeri da una codifica all'altra) Esempio^ 3 + 2 = e
(vi ricordate? Una codifica dove la somma delle rappresentazioni restituisce la rappresentazione della somma) (in ASCII:
9 ASCII come
9 UNICODE come