Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Lezione sulla codifica dei numeri razionali, Appunti di Elementi di Informatica

Slides con spiegazione di come si codifica e dell'utilizzo dei numeri razionali nel linguaggio C

Tipologia: Appunti

2017/2018

Caricato il 20/12/2018

carlo-carlo-5
carlo-carlo-5 🇮🇹

3 documenti

1 / 11

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Codifica dei numeri razionali
Leonardo Lanzi [email protected]
Dipartimento di Fisica e Astronomia
Informatica (B015854) ·2016-2017
Laurea triennale in Fisica e Astrofisica
Leonardo Lanzi Codifica dei numeri razionali 1 / 11
pf3
pf4
pf5
pf8
pf9
pfa

Anteprima parziale del testo

Scarica Lezione sulla codifica dei numeri razionali e più Appunti in PDF di Elementi di Informatica solo su Docsity!

Codifica dei numeri razionali

Leonardo Lanzi – [email protected]

Dipartimento di Fisica e Astronomia

Informatica (B015854) · 2016- Laurea triennale in Fisica e Astrofisica

Numeri razionali

I (^) In un sistema di numerazione in base B la sequenza 0 .c 1 c 2 · · · ck rappresenta il numero frazionario:

c 1 × B−^1 + c 2 × B−^2 + · · · + ck × B−k

I (^) Esempio:

(0.0101) 2 = 0 × 2 −^1 + 1 × 2 −^2 + 0 × 2 −^3 + 1 × 2 −^4 = 0 + 0.25 + 0 + 0.0625 = (0.3125) 10

Se > 1 , (11.101) 2 = 1 × 21 + 1 × 20 + 1 × 2 −^1 + 0 × 2 −2 + 1 × 2 −^3 = 2 + 1 + 0.5 + 0 + 0.125 = (3.625) 10

Numeri razionali: approssimazione

I (^) La condizione precedente potrebbe non verificarsi mai; in tal caso si ripete il procedimento per un numero prefissato di volte (di bit di codifica). I (^) Esempio: 0.45 × 2 = 0. 0.9 × 2 = 1. 0.8 × 2 = 1. 0.6 × 2 = 1. 0.2 × 2 = 0.4 ...ecc. ⇒ (0.45) 10 ≈ (0.01110) 2

Numeri in virgola mobile / singola e doppia precisione

I (^) La rappresentazione dei numeri in virgola mobile `e in relazione con la notazione scientifica. I (^) L’Institute of Electrical and Electronic Engineers (IEEE) ha definito uno standard (IEEE-754) per la rappresentazione in virgola mobile:

  • singola precisione: 32 bit (4 byte)
  • doppia precisione: 64 bit (8 byte)

Singola precisione: dettagli

I (^) L’esponente di un numero in singola precisione pu`o assumere i valori tra 0 e 255, con la seguente classificazione: Categoria E M Zeri 0 0 Numeri denormalizzati 0 non zero Numeri normalizzati 1 - 254 qualunque Infiniti 255 0 NAN (Not A Number) 255 non zero

Massimo e minimo valore in singola precisione

In questa rappresentazione, I (^) il massimo valore codificabile `e:

∑^23

i=

2 −i^ ) × 2254 −^127 = (1 + 1 − 2 −^23 ) × 2127

≈ 2128 ≈ 3. 402823 × 1038

I (^) il minimo `e:

2 −^23 × 2 −^126 = 2−^149 ≈ 1. 401298 × 10 −^45

Propagazione degli errori di arrotondamento

int main () { int i; int N = 1000000; float s = 0.1; float x = 0; float r = 0; for(i = 0; i < N; i++) { printf("%d %f %f\n", i, (x + s) * 10, 100 * (i - x * 10)/ (i+1)); x = x + s; } return 0; }

Propagazione degli errori di arrotondamento

-0.

-0.

-0.

-0.

0

0 100000 200000 300000 400000 500000 600000 700000 800000 900000 1e+

Errore relativo [%]

i

Accumulo errore N = 1000000