25.06.2013 Views

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

76 Tipi ed espressioni<br />

1.9.4 Funzioni di interrogazione<br />

Molte delle funzioni descritte in questa sezione si basano sui modelli implementati dal <strong>Fortran</strong><br />

per i dati di tipo intero e reale. <strong>Il</strong> linguaggio, infatti, utilizza dei modelli numerici per evitare<br />

al programmatore di dover conoscere i dettagli ”fisici” della rappresentazione in macchina dei<br />

dati numerici.<br />

<strong>Il</strong> modello <strong>Fortran</strong> per un intero i è:<br />

dove:<br />

• r è un intero maggiore di 1;<br />

• q è un intero positivo;<br />

q−1 <br />

i = s ×<br />

k=0<br />

• ogni wk è un intero non negativo minore di r;<br />

• s è il segno di i e può valere ±1.<br />

wk × r k<br />

I valori di r e di q determinano l’insieme dei dati interi supportati dal processore.<br />

<strong>Il</strong> parametro r è chiamato radice (o base) del sistema di numerazione utilizzato. Normalmente<br />

il suo valore è 2, nel qual caso il valore di q è pari al numero di bit usati dal processore<br />

per rappresentare un intero, diminuito di un’unità (un bit, infatti, è usato per rappresentare il<br />

segno del numero).<br />

A titolo di esempio, per una tipica rappresentazione di interi a 32 bit su un processore con<br />

base 2, il modello intero diventa:<br />

30<br />

i = ± wk × 2 k<br />

k=0<br />

dove ciascun wk può valere 0 o 1.<br />

<strong>Il</strong> modello <strong>Fortran</strong> per un reale x, invece, è:<br />

dove:<br />

x =<br />

• b e p sono interi maggiori di 1;<br />

0<br />

s × b e × p<br />

k=1 fk × b −k<br />

• ciascun fk è un intero non negativo minore di b (e con, in particolare, f1 diverso da zero);<br />

• e è un intero giacente fra due estremi, emin ed emax;<br />

• s è il segno di x e può valere ±1.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!